The Java Virtual Machine in Hardware
This course is about the Java processor JOP, an implementation of the Java
Virtual Machine (JVM) in hardware and embedded systems programming in
Java.
Aim
The aim of this class is to prepare the students for a career in the
emerging area of System-on-Chip with FPGAs and embedded systems.
Subject
This course is about the implementation of the Java Virtual Machine
(JVM) in hardware and the design trade-offs for different HW/SW
partitioning schemes. The students will learn the fundamentals of the
JVM and a Java processor architecture. The combination of these two
topics will be shown with and practiced on JOP (the Java Optimized
Processor). They will learn the design flow starting with building a
soft-core CPU in an FPGA up to the Java application that runs on this
CPU. Based on the understanding of the design flow the practical
aspects of the embedded Java programming and HW/SW partitioning
will be explored in the lab with small projects.
Areas Covered
- Introduction of Java and the JVM
- JOP Design Flow + Introduction Exercise in the LAB
- The Java virtual machine
- JOP, the Java Optimized Processor
- An Efficient Stack Machine
- Real-time Garbage Collection
- Real-time and Safety-critical Java
- WCET Analysis for a Java Processor
- Time Predictable Instruction Cache for a Java Processor
Organization
Held as special course (5 ECTS) during the three week period in June
(07.06.10 – 25.06.10).
The course starts Monday 7. June in
Room 205 in building 322 at 10:00. The lab part is also in
building 322, the Databar in the third floor (room 299).
Lecturer: Martin Schoeberl
Sign up per email to masca@imm.dtu.dk
Limit of participants: 25
Lecture Dates
- Mo 7.6., 10:00, room 322.205, Introduction (Overview slides, Build slides)
- Mo 7.6., 13:00, room 322.299, Lab start
- We 9.6., 10:00, room 322.030, Lecture (JVM
slides)
- We 9.6., 13:00, room 322.205, ESE Seminar (Seminar slides)
- Th 10.6., 10:00, room 305.053, Lecture (Cache slides, SCJ
slides)
- Mo 14.6., 10:00, room 322.030, Lecture (RT Java slides)
- Tu 15.6., 10:00, room 322.030, Lecture
- Tu 15.6., 14:00, room 322.299, Lab 2nd exercise + status report
- We 16.6., 13:00, room 322.205, ESE Seminar (RT garbage collection)
- Mo 21.6., 10:00, room 322.030, Lecture
- Fr 25.6., presentation of the project in the lab
The lab (322.299) shall be available during the whole three weeks.
Supervision in the lab on appointment - just drop by in my office
opposite of the lab.
Prerequisite
- Knowledge of Java
- Basic computer architecture
- Interest in the internals of the Java virtual machine
Lab Work
The work will be done in groups of up to 4 in the laboratory. The
students are free to chose exercises that fit to their skills and
interests. A report in a short paper format (up to 4 pages or as Wiki
page) and a short presentation of one project will conclude the course.
Introduction Exercise: 10 Points
The first exercise is a Hello World program running on JOP. This work
is supervised and will help the students to get used to the design
flow. After this introduction the students are free to select one
project.
The design flow and the exercise is described in the handbook in
Chapter 2. Take care that the default configuration of the Makefile is
for a different board. You have to set the Quartus project (QPROJ) to
altde2-70 and use the USB-Blaster instead the ByteBlaster (uncomment
the line in the Makefile).
Thread Example: 10 Points
The second exercise gives an introduction into programming of periodic
real-time threads. Implement a tiny application that uses at least two
real-time threads, perform WCET analysis, and schedulability analysis
with utilisation based analysis (see: http://en.wikipedia.org/wiki/Rate-monotonic_scheduling).
An example could be the implementation of a clock that prints the current time by flashing
the watchdog LED.
Project: 60 Points
A project is autonomous work and each project can only be done by one
group. Your ideas are welcome.
For a list of possible ideas see http://www.jopwiki.com/JvmHw.
You shall also enter your project into that Wiki.
Final report: 20 Points
The final report should describe the problems and solutions of one task
or project. The report has to be written in English. In can be a PDF or
just entered into the JOP Wiki.
Links