Speciale. Evaluering af Java til udvikling af indlejrede realtidssystemer ved brug af en eksisterende Java Optimized Processor (JOP)



Relaterede dokumenter
A Profile for Safety Critical Java

Project Step 7. Behavioral modeling of a dual ported register set. 1/8/ L11 Project Step 5 Copyright Joanne DeGroat, ECE, OSU 1

Evaluering af Java til udvikling af indlejrede realtidssystemer ved brug af en eksisterende Java Optimized Processor

ECE 551: Digital System * Design & Synthesis Lecture Set 5

Start af nyt schematic projekt i Quartus II

Simulering af en Mux2

Designing Complex FPGAs

Hvilket sprog er hurtigst

Det er muligt at chekce følgende opg. i CodeJudge: og

University of Southern Denmark Syddansk Universitet. DM502 Forelæsning 2

Eksempel: Skat i år 2000

Abstrakte datatyper C#-version

Design Wave Magazine 2003 November 151

Test af It-komponent

Real-time programming safety in Java and Ada

Logiske Digitale Kredsløb 10. Agenda: Interaktion mellem bruger og kredsløb Kontakter og prel Displays

DM502. Peter Schneider-Kamp

Sorting on the SRC 6 Reconfigurable Computer

Intro til AVR. Mads Pedersen, OZ6HR

Dell Cloud Client Computing Hvordan virtualisere vi de tunge grafisk applikationer?

Objektorienteret Programmering

Design by Contract Bertrand Meyer Design and Programming by Contract. Oversigt. Prædikater

RMI introduktion. Denne artikel beskriver Java RMI (Remtote Method Invocation).

DM01 DM Obl. Afl. Jacob Christiansen, , D12, Elias 18/ Side 1 af 11

Bits DM534. Rolf Fagerberg, 2012

Dette korte foredrag er opdelt i 3 dele: 1. ARDUINO i flere versioner, hvad er det? 2. DEMO-video 3. Din fremtidige Oscillator, SI5351A 4.

Embedded controller, almen.

Programming Language Design and Analysis motivated by Hardware Evolution

University of Southern Denmark Syddansk Universitet. DM502 Forelæsning 6

Sesam Automationstrend. Spørgsmål til leverandørerne? New Automation Technology

Projekt rapport. for. Zigbee kommunikation

INGENIØRHØJSKOLEN I ÅRHUS Elektro- og IKT-afdelingen. I3PRG3 + I3DTM3 + I3ISY1-3. semester

Threads i Java. Denne artikel giver en introduktion til threads i Java. Den beskriver hvad tråde er og forklarer hvordan de bruges i Java

DANMARKS TEKNISKE UNIVERSITET

PARALLELIZATION OF ATTILA SIMULATOR WITH OPENMP MIGUEL ÁNGEL MARTÍNEZ DEL AMOR MINIPROJECT OF TDT24 NTNU

Andreas Nordbek & Kristoffer Skude Jensen. DMX Styring Side 1 af 15

Journal JTAG: Udarbejde af: Benjamin Grydehøj I samarbejde med PDA Projektgruppen. Elektronikteknologafdelingen på Erhvervsakademi Fyn.

Forelæsning Uge 3 Torsdag

Forelæsning Uge 3 Torsdag

Fra programmering til mikroprocessor

Hashing og hashtabeller

Algorithms & Architectures II

Lær Python dag 1 - modul 1

Benefits of Integrated System Design for complex FPGAs

Algoritmedesign med internetanvendelser ved Keld Helsgaun

Rekursion og dynamisk programmering

BRP Tal. Om computer-repræsentation og -manipulation. Logaritmer

Civilingeniøreksamen januar Skriftelig prøve den 12. januar 2001 Kursusnummer 49104

Prioritetskøer ved»heap«, simulering

Ugeseddel 4 1. marts - 8. marts

Dag 10 Flertrådet programmering

Arduino Programmering

Sekvensafstand DM34 - Eksamensopgave. Jacob Aae Mikkelsen

Maskinarkitektur. Lars Kristensen Christian Storm dmasark 1

Forelæsning Uge 4 Torsdag

Singleton pattern i Java

AAU, Programmering i Java Intern skriftlig prøve 18. maj 2007

Datatekniker med programmering som speciale

Lektion 6. Grundlæggende programmering i VR

Virkefeltsregler i Java

Tilfældige tal. Denne artikel introducerer generering af tilfældige tal og viser lidt om hvad man kan og ikke mindst hvad man ikke bør bruge.

b) Udvid din implementation af forme til at understøtte.equals. To objekter af samme form er ens hvis de har samme værdier i felterne.

Distribuerte Objekter. Våren 2010 Professor II Eric Jul F

Projektledelse i praksis

LX5280. High-Performance RISC-DSP for IP Licensing

Forelæsning Uge 2 Torsdag

OG-3600 Series Fiber Optic Transport for opengear card frame platform w/ SNMP Management

Principper for Samtidighed og Styresystemer

Hashing og hashtabeller

uprocessorens hardware

Grundlæggende OOA - OOD

02101 Indledende Programmering Introduktion til Eclipse

Datalogi OB, Efterår 2002 OH er, forelæsning 3/ forstå datastrukturer og algoritmer (teoretisk forståelse og intuition)

dintprog Manual Revision: 1241 August 24, 2010 I Introduktion 3 1 Notation 3 II Begreber 4 2 Grundbegreber om programmering 4

Forelæsning Uge 2 Torsdag

Automatic Code Orchestration from Descriptive Implementations

Parallelle algoritmer

Forelæsning Uge 2 Torsdag

Nyhedsbrev for uddannelsen IT-Engineering marts Jens Cramer Alkjærsig,

Java Programmering. En bog for begyndere. Skrevet af Henrik Kressner

class Time { int hours, min; } } Time t1; // Erklær variabel af type Time class Time1 { public static void main(string[] args) { Time t1; t1.

BRP Kursusintroduktion og Java-oversigt

Hvad er et distribueret objekt? Plan Objekter, objektreferencer, metoder, parameteroverførsel. Objekter: notation

Introduktion til C programmering

Jacob Christiansen, Institut for MAtematik og DAtalogi, Syddansk Universitet, Odense

Bilag 1 GPS dataudskrifter fra Stena Carisma ved passage af målefelt

Datamaters arkitektur og programmering

Programmering 1999 KVL Side 5-4. Klassen Time: metoder. Metoder i objektet giver mulighed for at ændre tilstanden, eller kigge på tilstanden.

Tree klassen fra sidste forelæsning

Design by Contract. Design and Programming by Contract. Oversigt. Prædikater

Computere og Netværk (dcomnet)

Introduktion til ActionScript

Processer og tråde. dopsys 1

Syntaks og syntaksgenkendelse, særligt regulære udtryk og tilstandsmaskiner og lidt om anvendelser i bioinformatik

Programmering i C Videre med C (2 af 4) 19. marts 2007

Webserverprogrammering

LoGen Generation and Simulation of Digital Logic on the Gate-Level via Internet

ECE495D ASIC Design Lab

Tabelbegrebet. Klassediagrammer (III) Oversigt. Anvendelse af Tabeller. Tabeller og qualified associations

RMI avanceret. Denne artikel beskriver nogle mere avancerede features i RMI. Den gør det muligt at lave mere realistiske applikationer.

Transkript:

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 Agenda Introduktion Specialet generelt FPGA VHDL JOP Hvad er JOP? SW/HW co-design Java-eksempel JOP i praksis Slide 2 af 20 1

Speciale generelt Forskningsorienteret Ikke produktorienteret (som afgangsprojekt) Slide 3 af 20 Introduktion til specialet Øget brug af programmeringssproget Java Krav til high-level reliable language til indlejret software: Objektorientering Kode-genbrug Frameworks Flere eksisterende løsninger (dedikeret Java processor, der udfører Java byte code - ajile). En anden (nyere) løsning: Implementeret i FPGA FPGA = Field Programmable Gate Array FPGA er en standard platform ( extensible og billig) for mange designs i industrien Java Optimized Processor (JOP), Ph.D.-projekt fra Technischen Universität Wien (Østrig) af Martin Schoeberl Slide 4 af 20 2

Fokus Evaluering af JOP: Undersøgelse af FPGA-løsningen (SW/HW co-design mv.) Evaluering af realtidsaspekter i forhold til Real-Time Specification for Java (SJ). Både som teoretiske undersøgelser såvel som praktiske eksperimenter Kan man lave forudsigelig eksekvering af Java-kode? Evaluering af JOP s performance, sammenlignet med andre former for Java-udførsel: Eksekveret i en virtuel maskine (som standard Java) Eksekveret af en dedikeret Java-processor Eksekveret i FPGA (som JOP) Slide 5 af 20 FPGA - VHDL FPGA = Field Programmable Gate Array FPGA programmeres i programmeringssproget VHDL VHDL = VHSIC Hardware Description Language VHSIC = Very High Speed Integrated Circuits Vi har haft et crash course i VHDL i den seneste tid. Slide 6 af 20 3

FPGA-basics CLB: Configurable Logic Block - indeholder logikken IOB: Input/Output Block - interface til omverdenen Block RAM: Random Access Memory - FPGA en hukommelse Multiplier: 18 x 18 bit hardware multipliers Slide 7 af 20 VHDL-eksempel library IEEE; use IEEE.STD_LOGIC_1164.ALL; use IEEE.STD_LOGIC_ARITH.ALL; use IEEE.STD_LOGIC_UNSIGNED.ALL; entity counter_simple is port ( CLK, UP, RESET, CE : in std_logic; -- CE: Count Enable COU_OUT : out std_logic_vector(3 downto 0)); end counter_simple; architecture Behavioral of counter_simple is signal COU: std_logic_vector(3 downto 0); begin -- Internt tælle-signal process (CLK, RESET) begin if RESET='1' then -- Asynkront reset COU <= "0000"; elsif CLK'event and CLK='1' then if CE='1' then if UP='1' then COU <= COU + 1; -- Valg af op-/nedtælling else COU <= COU - 1; end if; else COU <= COU; end if; end if; end process; COU_OUT <= COU; -- Internt signal forbindes til udgangene end Behavioral; Slide 8 af 20 4

Hvad er JOP? Hardware-implementation af en JVM Målrettet mindre indlejrede systemer med realtidskrav JOP er implementeret som en soft core i en FPGA. Ubrugte FPGA-ressourcer kan bruges til perifere enheder. Slide 9 af 20 JOP s 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 Slide 10 af 20 5

JOP-hardware FPGA: Altera Cyclone FPGA Board I/O-board: Baseio Expansion Board Slide 11 af 20 Data path Slide 12 af 20 6

Muligheder med JOP i FPGA SW/HW co-design Udføre udvalgte operationer direkte i hardware (implementeres i VHDL) og kaldes fra Java. Spændende mulighed, som skal undersøges nærmere Slide 13 af 20 SW/HW co-design Eksempel med 32-bit multiplikation i hhv.: Java (software) Micro code (JOP s eget instruction set) VHDL (hardware) Slide 14 af 20 7

J på JOP Slide 15 af 20 Programmering af JOP Faser Initialization phase Ikke-tidskritiske operationer, som oprettelse af realtidstråde og allokering af objekter Mission phase Startes ved startmission() Realtidstråde skeduleres, udførsel af tidskritiske operationer Restrictions: Slide 16 af 20 8

Realtidstråde Slide 17 af 20 Andre informationer Skedulering Garbage Collection Forudsigelighed Slide 18 af 20 9

JOP Java-eksempel import joprt.rtthread; import joprt.swevent; import util.dbg; public class Event public final static int CNT = 10; static SwEvent sev; public static void main(string[] args) Dbg.initSer(); // use serial line for debug output sev = new SwEvent(2, 10000) public void handle() Dbg.wr("fire!"); ; RtThread rt = new RtThread(1, 100000) public void run() for (int i=0; i<cnt; ++i) waitfornextperiod(); Dbg.wr("\nbefore"); sev.fire(); Dbg.wr("after"); ; for (;;) waitfornextperiod(); RtThread.startMission(); for (;;) ; // busy do nothing Slide 19 af 20 JOP in action! Slide 20 af 20 10