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

Start af nyt schematic projekt i Quartus II

Simulering af en Mux2

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

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

Abstrakte datatyper C#-version

Test af It-komponent

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

DM502. Peter Schneider-Kamp

Intro til AVR. Mads Pedersen, OZ6HR

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

Objektorienteret Programmering

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

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.

Projekt rapport. for. Zigbee kommunikation

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.

Fra programmering til mikroprocessor

Algorithms & Architectures II

Lær Python dag 1 - modul 1

Rekursion og dynamisk programmering

Ugeseddel 4 1. marts - 8. marts

Dag 10 Flertrådet programmering

Arduino Programmering

Maskinarkitektur. Lars Kristensen Christian Storm dmasark 1

Singleton pattern i Java

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

Datatekniker med programmering som speciale

Virkefeltsregler i Java

Projektledelse i praksis

Principper for Samtidighed og Styresystemer

Hashing og hashtabeller

Grundlæggende OOA - OOD

02101 Indledende Programmering Introduktion til Eclipse

Automatic Code Orchestration from Descriptive Implementations

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

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

BRP Kursusintroduktion og Java-oversigt

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

Introduktion til C programmering

Datamaters arkitektur og programmering

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

Webserverprogrammering

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

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