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

Slides:



Advertisements
Lignende præsentationer
C# introduktion. using System; Namespace MyFirst { class eks1 { public static void Main() { Console.WriteLine("Hej!"); Console.Write("Skriv dit navn her:
Advertisements

Når en applikation går i fejl… … er det interessant, at vide noget om: Hvornår gik applikationen i fejl Hvilken applikation gik i fejl Hvad er fejlen.
Februar 2005Sprog-nyheder i C# og VB1 Captator Tlf: Henrik Lykke Nielsen Softwarearkitekt, Microsoft Regional Director for Denmark.
Perspektiverende Datalogi Internetalgoritmer MapReduce Gerth Stølting Brodal.
T1 – OPGAVE 14.2 LINETT & SABRINA Klasse Varer namespace Opgave_14._2 { class Varer { private string vare; private string farve; private double.
Array og ArrayList Et slideshow. Som er sødt.. Hvordan virker ArrayList?  ArrayList NAVN = new ArrayList ();  NAVN.add(”Værdi”);  NAVN.add(index, ”værdi”)
13 – Database med JDBC. 2 NOEA2009Java-kursus – JDBC JDBC JDBC er et standard bibliotek til at tilgå relational databaser API’et er en standardiseret.
C#: Udtryk og metoder. Indhold “With regards to programming statements and methods, C# offers what you would come to expect from a modern OOPL…” Udtryk.
06 – Java Packages Packages og ClassPath. 2 NOEA2009Java-kursus – Packages og class path Hvad er Packages? En package er en gruppering af relaterede typer.
Item gennemgang  Item: 01 – Static factory methods  Item: 09 – Override hashCode  Item: 17 – Design & document inheritence  Item: 25 – Lists over arrays.
Collectionklasser Klassifikation og anvendelse. Collections Motivation –hvorfor bruge collections? Realisering af en-til-mange relationer –Importer, erklær,
Per P Madsen AAU1 Del 3 : Transportlaget - Protokoller. UDP. TCP - Pålidelig kommunikation og PAR-princippet - Wireless TCP - Socket-API’en.
View Procedures Trigger og Function Jesper Tørresø DAB1 E07 1. november 2007.
// Semaphore.java package semaphore; public class Semaphore { int resources = 1; // Constructors Semaphore() {} Semaphore(int i) { resources = i; } synchronized.
Selve objektet versus referencen til objektet Nedarvning
Første generation (maskiner/operativsystemer) 45-55: radiorør Kun maskinsprog programmering = skrivning af nullerog ettaller Intet operativsystem programmør.
Grundlæggende programmering Efterår 2001
Præsentation af Data 3-5 semester Jan Helbo. Interfaces Datateknik Basis D5 D3 SignalProcesInformatikKom. net D4 Interface Tele Button UP.
Microsoft Solutions for Management Peter Colsted Direktør Enterprise & Partner Group Microsoft Danmark.
Objekter og klasser Applikationsdesign Code Namespace Value og reference typer Reference type Rasmus D. Lehrmann1.
12 – GUI med Swing. 2 NOEA2009Java-kursus – GUI med Swing Designer view Komponenter Frame Properties Inspector.
01 – Java platform for starters. 2 NOEA2009Java-kursus – Java Platform Introduktion til Java Baggrund Hvad er Java? Faciliteter i Java.
Abstrakte klasser og interfaces i Java
FEN IntroJava AAU1 Opsamling: afvikling af Java-programmer Input fra keyboard og fil Fra en prompt Fra BlueJ Fra NetBeans.
Emergency call button Stabilt og simpelt A;0:00. Agenda Opgaven (Hvad skal vi lave?) Målsætninger (Hvad ønsker vi at få ud af det?) Projektet (Hvordan.
Begreber og Redskaber 9. Plan for idag I dag: Datastrukturer Tabeller Lister, mængder, maps, grafer Hægtede lister.
Gruppe sort Morten, Peter, Jesper, Spencer & Støving.
Emergency call button Stabilt og simpelt 1. Agenda Områder af speciel interesse Gennemgang Hvad har jeg lært? Spørgsmål 2.
Begreber og Redskaber 5. Collections i Java 1.2 Framework: samling af datastrukturer og algoritmer som generelt værktøj. En ramme til at arbejde med søgning.
Business case - Gevinstoverblik Forsikring eksempel
Begreber og Redskaber 5. Plan for idag Overblik over klasser,objekter,nedarvning –Repetition fra Dat A/Indledende programmering –Centrale begreber om.
RT Speciale Evaluering af Java til udvikling af indlejrede realtidssystemer ved brug af en eksisterende ”Java Optimized Processor” (JOP) Speciale – efterår.
Begreber og Redskaber 2. Plan for idag Noget om bestanddelene i et programmeringssprog Syntaksbeskrivelse af java Næste gang: –Binære tal –Repræsentation.
Forelæsning 3.1 Collections Javas for-each løkke
1 Tråde 2 Plan Trådbegrebet Synkronisering Koordinering Eksempel: et flertrådet spil.
Interfaces – brug. Overblik Tidligere: –Interfaces Comparable gør det muligt at bruge Collections metoderne –min, max, sort, … –Algoritmemønstre Find.
Fundamentale datastrukturer
Mønstre En lille introduktion. Singleton Tilgå et objekt igennem klassereference i stedet for objektreference.  Overflødiggør referencer til objektet.
1 Fundamentale datastrukturer. 2 Definitioner: abstrakt datatype, datastruktur Elementære datastrukturer og abstrakte datatyper : arrays, stakke, køer,
Paradigmer i Programmering 2. Sammensatte typer Tupler og lister Programmering med rekursion Programmering med pipe-lines Programmering med polymorfe.
Begreber og Redskaber 7. Plan for idag Rekursive underprogrammer Rekursive datastrukturer Rekursion vs iteration Rekursivt: Flette sortering.
8 RÅD VEDRØRENDE GOD PROGRAMMERING Effective (brown) Java.
11 - Exceptions. 2 NOEA2009Java-kursus – Exceptions Hvad er en exception? En undtagelse. Typisk en fejl der opstår runtime Afbryder det normale programflow.
FEN IntroJava AAU1 Klasser og objekter Grundbegreber Student-Course.
FEN IntroJava AAU1 Endnu mere om Klasser og Objekter Mange til mange relationer Student-Course v3.
Anvendelser I Leg og spil.
JavaCC Top-down (Recursive descent). Mest populære mht Java. Regulær grammatik og Context-free grammatik i en fil. Tillader EBNF: (..)*, (..)+ og (..)?
03 – Udtryk og metoder. 2 NOEA2009Java-kursus – Udtryk og metoder Udtryk i Java Java har standard udtrykene… Værditildeling Subrutiner og funktionskald.
Hvad består en distribueret applikation af ? Processer der kører på hver deres maskine Tråde - 1 eller flere "letvægtsprocesser" per proces Objekter i.
Længste plateau En klassisk problemstilling (Gries, 1981) - og her i Java!!! Denne opgave drejer sig om at bestemme længden af det længste plateau i en.
Virkefeltsregler i Java int i; int j; int k; i = i+j; String t; Sequence s; int i; int j; Sequence s; String s; int i; int j;
9. Interfaces. 2 Nordjyllands Erhvervakademi Objectives “Good class design starts with good application design — how many classes, do they relate.
Identitet vs lighed. Spørgsmål Hvad udskriver run metoden? 1.”Ens!” 2.”Forskellige!” 3.Ved ikke public class Driver{ public static void run(){ String.
Effective Java Blå gruppe. Item 18: Interfaces frem for abstrakte klasser Kan implementeres i klasser der ikke nedarver Eksisterende klasser kan nemt.
Begreber og Redskaber 4. Plan for idag Om metoder, parametre, returværdier Et par ord om objekt-orientering Håndkøring af programmer.
Begreber og Redskaber 3. Plan for idag Om metoder, parametre, returværdier Overblik over klasser,objekter,nedarvning Et par ord om objekt-orientering.
I o p o DAIMI, AU, November 1999Programkonstruktion I9E.1 Konstruktion og brug af klasser – en stak og en HP-regnemaskine push pop.
 Michael E. Caspersen, 2000Introducerende objektorienteret programmering6B.1 Virkefeltsregler i Java int i; int j; int k; i = i+j; String t; Sequence.
 Bærbak & Caspersen, 2000Introducerende objektorienteret programmering1.1 Turtlemaskinen Arkitektur, instruktionssæt og eksempler.
DAIMIIntroducerende objektorienteret programmering3B.1 Definition af klasser Klasseskelet, metoder, et eksempel: dato.
 Michael E. Caspersen, 2000Introducerende objektorienteret programmering6A.1 Programmering med interfaces – en stak og en HP-regnemaskine push pop.
Indledende Programmering Uge 6 - Efterår 2006
Programmering med interfaces Separering af specifikation, anvendelse og implementation.
Programmering med interfaces – en stak og en HP-regnemaskine push pop.
Lærde skildpadder Specialisering af skildpadder – nye kompetencer (metoder/kommandoer)
Virkefeltsregler i Java int i; int j; int k; i = i+j; String t; Sequence s; int i; int j; Sequence s; String s; int i; int j;
I o p o DAIMI, AU, September 1999Introducerende objektorienteret programmering5C.1 Virkefeltsregler i Java int i; int j; int k; i = i+j; String t; Sequence.
Virkefeltsregler i Java int i; int j; int k; i = i+j; String t; Sequence s; int i; int j; Sequence s; String s; int i; int j;
Quiz – Uge 3 – torsdag – første time
Quiz – Uge 3 – torsdag – første time
Præsentationens transcript:

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

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

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

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

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

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

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

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, ); } public void run() { while (true) { System.out.println("."); waitForNextPeriod(); }

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("."); } } ); } } }

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)

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

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

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

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

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, …

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; }

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

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

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

RT Slide 20 af 20 JOP-speciale: Jan Lauritzen & Mads Pedersen Links Hjemmeside for JOP Schoeberls phd-afhandling jclasslib (værktøj til at se Java-bytekoder)