Projects can be done alone or in small groups. The projects can be done in the TI LAB or at home. We will provide the necessary additional hardware (i.e. FPGA board).
You can earn one or more of practical Zeugnisse or work on your Master thesis (Diplomarbeit). If you are interested in one of the listed projects or have your own ideas for SoC related work contact Martin Schoeberl.
For ongoing and finished projects see:
Master thesis (Diplomarbeit)
Info on formal aspects of the thesis: http://www.informatik.tuwien.ac.at/studium/richtlinien/
Hardware transactional memory systems (, ) are a promising idea for future CMP systems. Within this master thesis a TM system will be implemented in a FPGA. It will be evaluated with a CMP version of JOP and optional a CMP of RISC cores.
- Synchronization solution for CMP
- Small buffer for each core
- Atomic commit (single token)
- Abort conflicting transactions on commit
- Implementation on the JOP CMP
- Only WCET analyzable features
- E.g. method cache
- Compiler scheduled speculation
- Predicated instructions
- Cooperation with CompLang (Florian Brandner)
Safety critical Java on JOP
- Java the language for future SC applications
- Subset of Java
- Subset of RTSJ
- JSR302 standard
- About to finish
Virtual Memory Management with GC Interaction
Standard page mapped virtual memory is not the best fit for a garbage collected heap. This thesis shall investigate new organizations of virtual memory (with a hard disc or NAND Flash next level memory) that better interact with garbage collection. The assumption is a Java virtual machine (JVM) that runs without an OS on the bare metal. We can also change the processor if a new abstraction of the address translation is needed.
Worst-case cache analysis
Analysis of the "method cache" http://www.jopdesign.com/doc/jtres_cache.pdf and a standard direct mapped cache.
RTSJ on JOP
Implementation of the Real-Time Specification for Java (http://www.rtsj.org/), or part of it, on JOP.
ADA on JOP
Ada can be compiled by "JGNAT" (http://gd.tuwien.ac.at/languages/ada/gnat/jgnat/jgnat-1.1p/) to standard Java .class files. The task is to get ADA running on JOP by extending the current JDK for JOP to be compatible with JGNAT.
Project work (Bachelor thesis) and or Project (PR)
Some of the projects can also be extended for a Master thesis.
Transactional Memory Examples
Collection and implementation of multi-threaded Java applications that use atomic regions (transactional memory) as their only synchronization primitive. Evaluation of the performance on a TM Java processor platform.
Java processor comparison
Comparison of various embedded Java systems (e.g. aJile, Cjip, ARM/Jazelle, Komodo, FemtoJava, JOP,...) with respect to real-time capabilities, performance, and size (see also JavaBenchEmbedded). We have several embedded Java development kits available.
JTAG User Interface
The JTAG interface in an FPGA devices can also be used to connect to user logic. With this interface program download and debugging can be performed without the need for an additional serial interface. Tasks: Access to the JTAG port in a Cyclone device (VHDL) and PC software to drive the JTAG port (Java, http://bleyer.org/jjtag/).
JVM Test Framework
Test cases to verify that an implementation of a JVM (Java Virtal Machine) confirms to the "JVM Specification" http://java.sun.com/docs/books/vmspec/2nd-edition/html/VMSpecTOC.doc.html (Java).
A TCP/IP stack written completely in Java based on http://www.jopdesign.com/ejip/index.jsp. API for the TCP/IP stack as in "javax.microedition.io" http://developers.sun.com/techtopics/mobility/midp/articles/genericframework/, part of "CLDC" http://java.sun.com/products/cldc/index.jsp. The TCP/IP stack has to be implemented for real-time applications (time predictable code and memory usage).