Præsentation er lastning. Vent venligst

Præsentation er lastning. Vent venligst

RT Speciale Evaluering af Java til udvikling af indlejrede realtidssystemer ved brug af en eksisterende ”Java Optimized Processor” (JOP) Speciale – efterår.

Lignende præsentationer


Præsentationer af emnet: "RT Speciale Evaluering af Java til udvikling af indlejrede realtidssystemer ved brug af en eksisterende ”Java Optimized Processor” (JOP) Speciale – efterår."— Præsentationens transcript:

1 RT Speciale Evaluering af Java til udvikling af indlejrede realtidssystemer ved brug af en eksisterende ”Java Optimized Processor” (JOP) Speciale – efterår 2005 Teknisk Informationsteknologi Jan Lauritzen & Mads Pedersen

2 RT Slide 2 af 20 JOP-speciale: Jan Lauritzen & Mads Pedersen Agenda Opsummering Hvad har vi arbejdet med siden? JOP’s realtidsprofil Gennemgang af SW/HW co-design

3 RT Slide 3 af 20 JOP-speciale: Jan Lauritzen & Mads Pedersen Opsummering af JOP Main features: Small core that fits in a low cost FPGA Configurable resource usage through HW/SW co-design Predictable execution time of Java bytecodes Fast execution of Java bytecodes without JIT-Compiler Flexibility for embedded systems through FPGA implementation

4 RT Slide 4 af 20 JOP-speciale: Jan Lauritzen & Mads Pedersen Hvad har vi arbejdet med siden? Analyse af realtid, arkitektur, API mv. Portering til en anden FPGA-platform: Spartan-3 SW/HW co-design

5 RT Slide 5 af 20 JOP-speciale: Jan Lauritzen & Mads Pedersen JOP’s realtidsprofil Inspireret af Ravenscar-Java

6 RT Slide 6 af 20 JOP-speciale: Jan Lauritzen & Mads Pedersen JOP’s realtidsprofil Ikke kompatibel med hverken RTSJ eller Ravenscar-Java Forskelle mellem JOP og Ravenscar-Java Mere low-level, skal selv håndtere detaljer som f.eks. waitForNextPeriod() Ravenscar-Java bygget ovenpå som test Fordel: Flere er bekendt med Ravenscar- Java samt detaljer pakkes pænere ind

7 RT Slide 7 af 20 JOP-speciale: Jan Lauritzen & Mads Pedersen JOP’s realtidsprofil

8 RT Slide 8 af 20 JOP-speciale: Jan Lauritzen & Mads Pedersen JOP-eksempel public class JopExample { public JopExample() { MyThread t = new MyThread(); } public static void main(String[] args) { JopExample example = new JopExample(); RtThread.startMission(); for (;;) {;} // busy do nothing private class MyThread extends RtThread { private MySwEvent ev = new MySwEvent(); public MyThread() { super(1, 1000000); } public void run() { while (true) { System.out.println("."); waitForNextPeriod(); }

9 RT Slide 9 af 20 JOP-speciale: Jan Lauritzen & Mads Pedersen Eksempel med Ravenscar-Java import ravenscar.*;... public class RavenscarExample extends Initializer { public void run() { MyThread t = new MyThread(); } public static void main(String[] args) { RavenscarExample example = new RavenscarExample(); example.start(); } private class MyThread extends PeriodicThread { public MyThread() { super(new PriorityParameters(10), new PeriodicParameters(new AbsoluteTime(0,0),new RelativeTime(1000,0)), new Runnable() { public void run(){ System.out.println("."); } } ); } } }

10 RT Slide 10 af 20 JOP-speciale: Jan Lauritzen & Mads Pedersen SW/HW co-design Udføre udvalgte operationer tættere på hardware: Optimering 1: JOP-mikrokode Optimering 2: FPGA (VHDL)

11 RT Slide 11 af 20 JOP-speciale: Jan Lauritzen & Mads Pedersen SW/HW co-design Eksempel med 32-bit multiplikation

12 RT Slide 12 af 20 JOP-speciale: Jan Lauritzen & Mads Pedersen JOP-mikrokode P.t. ingen Java-processorer i stand til at udføre alle Java-bytekoder direkte i hardware Almindelig løsning Udføre noget i HW og resten i SW I JOP oversættes Java-bytekoder til JOP-mikrokode: Native instruktionssæt, som udføres direkte i hardware Hver mikrokode udføres på én cycle WCET-analyse mulig Se i Schoeberls phd-afhandling, Appendix C

13 RT Slide 13 af 20 JOP-speciale: Jan Lauritzen & Mads Pedersen Java-bytekode  JOP-mikrokode

14 RT Slide 14 af 20 JOP-speciale: Jan Lauritzen & Mads Pedersen Processor pipeline

15 RT Slide 15 af 20 JOP-speciale: Jan Lauritzen & Mads Pedersen Optimering 1 Fordele ved mikrokode Håndkode bedre en Java-kompiler Tilføj egen bytekode Fibonacci-algoritme valgt. 0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, 233, 377, 610, 987, 1597, 2584, 4181, 6765, 10946, …

16 RT Slide 16 af 20 JOP-speciale: Jan Lauritzen & Mads Pedersen Optimering 1: Java-kode public long fib(int n) { int res = 1; int f1 = 1; int f2 = 1; for (int i = 2; i <= n; i++) { res = f1 + f2; f2 = f1; f1 = res; } return res; }

17 RT Slide 17 af 20 JOP-speciale: Jan Lauritzen & Mads Pedersen Optimering 1: Fremgangsmåde Tilføj i følgende filer: jvm.asm Native.java JopInstr.java JopSim.java Rekompiler for at få det inkluderet i VHDL

18 RT Slide 18 af 20 JOP-speciale: Jan Lauritzen & Mads Pedersen Optimering 1: Resultat Java-bytekode: 13 instruktioner (vha. værktøjet jclasslib) 29 cycles (Schoeberls Appendix D) JOP-mikrokode: 11 instruktioner 11 cycles

19 RT Slide 19 af 20 JOP-speciale: Jan Lauritzen & Mads Pedersen Optimering 2 Udførsel direkte i hardware FPGA, VHDL Eksempel: Counter i FPGA Kører parallelt Interruptes tilbage, når valgt grænse nås Work in progress

20 RT Slide 20 af 20 JOP-speciale: Jan Lauritzen & Mads Pedersen Links Hjemmeside for JOP www.jopdesign.com/ Schoeberls phd-afhandling www.jopdesign.com/thesis/index.jsp jclasslib (værktøj til at se Java-bytekoder) www.ej-technologies.com/products/jclasslib/overview.html


Download ppt "RT Speciale Evaluering af Java til udvikling af indlejrede realtidssystemer ved brug af en eksisterende ”Java Optimized Processor” (JOP) Speciale – efterår."

Lignende præsentationer


Annoncer fra Google