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

Slides:



Advertisements
Similar presentations
1 Copyright © 2005, Oracle. All rights reserved. Introducing the Java and Oracle Platforms.
Advertisements

More Intel machine language and one more look at other architectures.
Chapter 16 Java Virtual Machine. To compile a java program in Simple.java, enter javac Simple.java javac outputs Simple.class, a file that contains bytecode.
POLITECNICO DI MILANO Parallelism in wonderland: are you ready to see how deep the rabbit hole goes? ILP: VLIW Architectures Marco D. Santambrogio:
Introduction To Java Objectives For Today â Introduction To Java â The Java Platform & The (JVM) Java Virtual Machine â Core Java (API) Application Programming.
Java security (in a nutshell)
The road to reliable, autonomous distributed systems
The Java Language. Topics of this Course  Introduction to Java  The Java Language  Object Oriented Programming in Java  Exceptions Handling  Threads.
Java: History and Introduction (Lecture # 1). History… Java – Based on C and C++ – Developed in 1991 for intelligent consumer electronic devices – Green.
Chapter 1: An Overview of Computers and Programming Languages J ava P rogramming: From Problem Analysis to Program Design, From Problem Analysis to Program.
Java for High Performance Computing Jordi Garcia Almiñana 14 de Octubre de 1998 de la era post-internet.
Run-Time Storage Organization
JVM-1 Introduction to Java Virtual Machine. JVM-2 Outline Java Language, Java Virtual Machine and Java Platform Organization of Java Virtual Machine Garbage.
Chapter 16 Java Virtual Machine. To compile a java program in Simple.java, enter javac Simple.java javac outputs Simple.class, a file that contains bytecode.
1 Software Testing and Quality Assurance Lecture 31 – SWE 205 Course Objective: Basics of Programming Languages & Software Construction Techniques.
1.3 Executing Programs. How is Computer Code Transformed into an Executable? Interpreters Compilers Hybrid systems.
Session-02. Objective In this session you will learn : What is Class Loader ? What is Byte Code Verifier? JIT & JAVA API Features of Java Java Environment.
Reduced Instruction Set Computers (RISC) Computer Organization and Architecture.
Intro to Java The Java Virtual Machine. What is the JVM  a software emulation of a hypothetical computing machine that runs Java bytecodes (Java compiler.
Java Security. Topics Intro to the Java Sandbox Language Level Security Run Time Security Evolution of Security Sandbox Models The Security Manager.
Part 1.  Intel x86/Pentium family  32-bit CISC processor  SUN SPARC and UltraSPARC  32- and 64-bit RISC processors  Java  C  C++  Java  Why Java?
Chapter 1 Algorithm Analysis
JOP: A Java Optimized Processor for Embedded Real-Time Systems Martin Schöberl.
Fast, Effective Code Generation in a Just-In-Time Java Compiler Rejin P. James & Roshan C. Subudhi CSE Department USC, Columbia.
Java Virtual Machine Java Virtual Machine A Java Virtual Machine (JVM) is a set of computer software programs and data structures that use.
Java Introduction Lecture 1. Java Powerful, object-oriented language Free SDK and many resources at
Lecture 10 : Introduction to Java Virtual Machine
Introduction to the Java Virtual Machine 井民全. JVM (Java Virtual Machine) the environment in which the java programs execute The specification define an.
1 Comp 104: Operating Systems Concepts Java Development and Run-Time Store Organisation.
1 Introduction to JVM Based on material produced by Bill Venners.
Java 2 security model Valentina Casola. Components of Java the development environment –development lifecycle –Java language features –class files and.
CPRG 215 Introduction to Object-Oriented Programming with Java Module 1-Introduction to Java Topic 1.1 Basics of Java Produced by Harvey Peters, 2008 Copyright.
Conrad Benham Java Opcode and Runtime Data Analysis By: Conrad Benham Supervisor: Professor Arthur Sale.
Part 1.  Intel x86/Pentium family  32-bit CISC processor  SUN SPARC and UltraSPARC  32- and 64-bit RISC processors  Java  C  C++  Java  Why Java?
Getting started with Programming using IDE. JAVA JAVA IS A PROGRAMMING LANGUAGE AND A PLATFORM. IT CAN BE USED TO DELIVER AND RUN HIGHLY INTERACTIVE DYNAMIC.
Copyright © Mohamed Nuzrath Java Programming :: Syllabus & Chapters :: Prepared & Presented By :: Mohamed Nuzrath [ Major In Programming ] NCC Programme.
ECEG-3202 Computer Architecture and Organization Chapter 7 Reduced Instruction Set Computers.
CSE 598c – Virtual Machines Survey Proposal: Improving Performance for the JVM Sandra Rueda.
1  1998 Morgan Kaufmann Publishers Where we are headed Performance issues (Chapter 2) vocabulary and motivation A specific instruction set architecture.
Lesson 1 1 LESSON 1 l Background information l Introduction to Java Introduction and a Taste of Java.
Chapter 1 An Overview of Computers and Programming Languages.
Introduction to Programming 1 1 2Introduction to Java.
RealTimeSystems Lab Jong-Koo, Lim
1 Sections Java Virtual Machine and Byte Code Fundamentals of Java: AP Computer Science Essentials, 4th Edition Lambert / Osborne.
Sung-Dong Kim, Dept. of Computer Engineering, Hansung University Java - Introduction.
(Not too) Real-Time JVM (Progress Report)
Applications Active Web Documents Active Web Documents.
Topics to be covered Instruction Execution Characteristics
What Do Computers Do? A computer system is
Chapter 1 Introduction.
A Closer Look at Instruction Set Architectures
Java security (in a nutshell)
Chapter 1 Introduction.
Java programming lecture one
Introduction Enosis Learning.
Java Virtual Machine Complete subject details are available at:
Improving java performance using Dynamic Method Migration on FPGAs
Introduction Enosis Learning.
Superscalar Processors & VLIW Processors
Mobile Development Workshop
CSc 453 Interpreters & Interpretation
Adaptive Code Unloading for Resource-Constrained JVMs
Compiler Construction
M S COLLEGE ART’S, COMM., SCI. & BMS
CSc 453 Interpreters & Interpretation
Presentation transcript:

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

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.

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.

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

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.

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)

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.

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™

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

Instruction class frequency

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

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

Average sizes in 32-bit words

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

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

Dr Saeid Nooshabadi

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

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