Speciale. Evaluering af Java til udvikling af indlejrede realtidssystemer ved brug af en eksisterende Java Optimized Processor (JOP)
|
|
|
- Caspar Berg
- 10 år siden
- Visninger:
Transkript
1 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
2 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
3 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
4 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
5 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
6 JOP-hardware FPGA: Altera Cyclone FPGA Board I/O-board: Baseio Expansion Board Slide 11 af 20 Data path Slide 12 af 20 6
7 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
8 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
9 Realtidstråde Slide 17 af 20 Andre informationer Skedulering Garbage Collection Forudsigelighed Slide 18 af 20 9
10 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, ) 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
A Profile for Safety Critical Java
A Profile for Safety Critical Java Martin Schoeberl Hans Søndergaard Bent Thomsen Anders P. Ravn Præsenteret af: Henrik Kragh-Hansen November 8, 2007 Forfatterne Martin Schoeberl Udvikler af JOP processoren
Project Step 7. Behavioral modeling of a dual ported register set. 1/8/ L11 Project Step 5 Copyright Joanne DeGroat, ECE, OSU 1
Project Step 7 Behavioral modeling of a dual ported register set. Copyright 2006 - Joanne DeGroat, ECE, OSU 1 The register set Register set specifications 16 dual ported registers each with 16- bit words
Evaluering af Java til udvikling af indlejrede realtidssystemer ved brug af en eksisterende Java Optimized Processor
Speciale Teknisk Informationsteknologi / Distribuerede Realtidssystemer Evaluering af Java til udvikling af indlejrede realtidssystemer ved brug af en eksisterende Java Optimized Processor af Jan Egberg
Start af nyt schematic projekt i Quartus II
Start af nyt schematic projekt i Quartus II Det følgende er ikke fremstillet som en brugsanvisning der gennemgår alle de muligheder der er omkring oprettelse af et Schematic projekt i Quartus II men kun
Simulering af en Mux2
Simulering af en Mux2 Indhold Start QuartusII op start et nyt projekt.... 2 Fitter opsætning... 6 Opstart af nyt Block diagram... 8 ModelSim... 14 Hvis man vil ændre data grafisk kan det også lade sig
Det er muligt at chekce følgende opg. i CodeJudge: og
Det er muligt at chekce følgende opg. i CodeJudge:.1.7 og.1.14 Exercise 1: Skriv en forløkke, som producerer følgende output: 1 4 9 16 5 36 Bonusopgave: Modificer dit program, så det ikke benytter multiplikation.
University of Southern Denmark Syddansk Universitet. DM502 Forelæsning 2
DM502 Forelæsning 2 Repetition Kompilere og køre Java program javac HelloWorld.java java HeloWorld.java Debugge Java program javac -g HelloWorld.java jswat Det basale Java program public class HelloWorld
Abstrakte datatyper C#-version
Note til Programmeringsteknologi Akademiuddannelsen i Informationsteknologi Abstrakte datatyper C#-version Finn Nordbjerg 1/9 Abstrakte Datatyper Denne note introducerer kort begrebet abstrakt datatype
Test af It-komponent
Test af It-komponent I programmeringssproget Java Programmet Login service Elev: Mads Funch Klasse 2.4 Mat, It, Programmering Skole: Roskilde Tekniske Gymnasium HTX Underviser: Karl Dato: 31-08-2016 Side
Logiske Digitale Kredsløb 10. Agenda: Interaktion mellem bruger og kredsløb Kontakter og prel Displays
LDK D3 kursusplan LDK 1 Introduktion, talsystemer, boolsk algebra, DeMorgan, sandhedstabeller, LDK 2 Logiske byggeblokke, grafisk minimering, Kaunaugh, Kombinatoriske netværk LDK 3 PEEL 18CV8 til realisering
DM502. Peter Schneider-Kamp ([email protected]) http://imada.sdu.dk/~petersk/dm502/
DM502 Peter Schneider-Kamp ([email protected]) http://imada.sdu.dk/~petersk/dm502/ 1 DM502 Bog, ugesedler og noter De første øvelser Let for nogen, svært for andre Kom til øvelserne! Lav opgaverne!
Intro til AVR. Mads Pedersen, OZ6HR [email protected]
Intro til AVR Mads Pedersen, OZ6HR [email protected] Projektidé Brug en AVR-microcontroller Mål temperatur vha. temperatursensor Vis på display Send til computer og vis temperatur Slide 2 Plan 27/10-2005:
Dell Cloud Client Computing Hvordan virtualisere vi de tunge grafisk applikationer?
Dell Cloud Client Computing Hvordan virtualisere vi de tunge grafisk applikationer? Christian Eilskov Sales Engineer, [email protected] +45 40 60 13 92 Dell Cloud Client Computing Dell lever produkter
Objektorienteret Programmering
Objektorienteret Programmering Struktureret Systemudvikling Jan Bendtsen Automation and Control Indhold Lidt om programmeringssprog Klasser i Java Klasser i C++ Oversættelse og kørsel af kode Et eksempel:
RMI introduktion. Denne artikel beskriver Java RMI (Remtote Method Invocation).
Denne guide er oprindeligt udgivet på Eksperten.dk RMI introduktion Denne artikel beskriver Java RMI (Remtote Method Invocation). Den beskriver teorien bag RMI, viser et simpelt kode eksempel og forklarer
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.
APPETITVÆKKEREN OZ6YM, Palle A. Andersen Efteråret 2017 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. DEMO-video
Embedded controller, almen.
Ver. 310807 s. 1 Bilag 3 Valgfri specialefagskatalog Data- og kommunikationsuddannelsen Undervisningsministeriet September 2007 /Steen Albertsen Ver. 310807 s. 2 Embedded controller, almen. Varighed 1
Projekt rapport. for. Zigbee kommunikation
Projekt: Zigbee kommunikation Dato: 24-02-2010 Afleverings Dato: 04-06-2009 Titel: Projekt rapport for Zigbee kommunikation 6. semester projekt i WEM1 ved Ingeniørhøjskolen i Århus Gruppe 2: 06709 Sean
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
Denne guide er oprindeligt udgivet på Eksperten.dk 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 Den forudsætter
DANMARKS TEKNISKE UNIVERSITET
DANMARKS TEKNISKE UNIVERSITET Skriftlig prøve, 14. december 2018, 4 timer Side 1 af 18 Kursus navn: 02101 Indledende Programmering Kursus : 02101 Tilladte hjælpemidler: Ikke-digitale skriftlige hjælpemidler
PARALLELIZATION OF ATTILA SIMULATOR WITH OPENMP MIGUEL ÁNGEL MARTÍNEZ DEL AMOR MINIPROJECT OF TDT24 NTNU
PARALLELIZATION OF ATTILA SIMULATOR WITH OPENMP MIGUEL ÁNGEL MARTÍNEZ DEL AMOR MINIPROJECT OF TDT24 NTNU OUTLINE INEFFICIENCY OF ATTILA WAYS TO PARALLELIZE LOW COMPATIBILITY IN THE COMPILATION A SOLUTION
Andreas Nordbek & Kristoffer Skude Jensen. DMX Styring 31-05-2010. Side 1 af 15
Andreas Nordbek & Kristoffer Skude Jensen DMX Styring 31-05-2010 Side 1 af 15 Indholdsfortegnelse 1 Indledning... 3 2 DMX... 4 3 Arkitektur... 5 4 Hardware design... 6 4.1 SPI... 9 5 Software... 10 5.1
Journal JTAG: Udarbejde af: Benjamin Grydehøj I samarbejde med PDA Projektgruppen. Elektronikteknologafdelingen på Erhvervsakademi Fyn.
Journal JTAG: Udarbejde af: Benjamin Grydehøj I samarbejde med PDA Projektgruppen Elektronikteknologafdelingen på Erhvervsakademi Fyn. Journal JTAG Xilinx XC9536 29-9-3 Generel beskrivelse af JTAG: JTAG:
Fra programmering til mikroprocessor
Programmering for begyndere Brug af Arduino Fra programmering til mikroprocessor EDR Hillerød Knud Krogsgaard Jensen / OZ1QK 1 Start på Arduino og programmering Programmerings kursus Sidste gang (Introduktion)
Algorithms & Architectures II
Algorithms & Architectures II Algorithms & Architectures II Jens Myrup Pedersen Hans Peter Schwefel Kursusholdere Dagens lektion Overordnet mål: At etablere en forståelse for hvordan hardware og hardwarearkitekturer
Lær Python dag 1 - modul 1
Lær Python dag 1 - modul 1 Introduktion, basis python Steffen Berg Klenow Jonas Bamse Andersen Syddansk Universitet Indhold 1. Velkommen 2. Programmering i python 3. Typer, variabler og udtryk 1 Velkommen
Rekursion og dynamisk programmering
Rekursion og dynamisk programmering Datastrukturer & Algoritmer, Dat C Forelæsning 12/10-2004 Henning Christiansen Rekursion: at en procedure kalder sig selv eller et antal metoder kalder hinanden gensidigt.
Ugeseddel 4 1. marts - 8. marts
Ugeseddel 4 1. marts - 8. marts Læs følgende sider i kapitel 6 i lærebogen: s. 233 258 og s. 291 317 (afsnit 6.3 overspringes). Begynd at overveje, hvad afleveringsopgaven skal omhandle. Læs vejledningen,
Dag 10 Flertrådet programmering
Videregående programmering i Java Dag 10 Flertrådet programmering Fremlæggelse af programmering/status for projekter Dokumentation med javadoc Flertrådede designmønstre: Arbejdstråd, Producent Konsument,
Arduino Programmering
Microcontroller, Arduino I teknologi skal vi lære at lave programmer til uc for at have muligheden til eksamen at kunne lave intelligente el-produkter. I hvert fald skal vi have set mulighederne, og forstået
Maskinarkitektur. Lars Kristensen [email protected]. Christian Storm [email protected]. dmasark 1
Maskinarkitektur Lars Kristensen [email protected] Christian Storm [email protected] dmasark 1 Praktiske oplysninger http://www.daimi.au.dk/dmasark dmasark 2 Forelæsninger Tirsdag 12.15-14.00, Store Aud,
Singleton pattern i Java
Denne guide er oprindeligt udgivet på Eksperten.dk Singleton pattern i Java Denne artikel beskriver Singleton pattern og implementation i Java. Den forudsætter kendskab til Java men ikke til Singleton.
AAU, Programmering i Java Intern skriftlig prøve 18. maj 2007
AAU, Programmering i Java Intern skriftlig prøve 18. maj 2007 Opgavebesvarelsen skal afleveres som enten en printerudskrift eller som et passende dokument sendt via email til [email protected]. Besvarelsen skal
Datatekniker med programmering som speciale
Datatekniker med programmering som speciale H3 H1 varer ti uger bestående af syv uddannelsesspecifikke fag, samt 2 Valgfri Udannelsesspecifikke Fag og 1 Valgfrit Speciale Fag Indhold På H2 er der fokus
Virkefeltsregler i Java
Virkefeltsregler i Java int i; int k; Sequence s; int j; What s in a name? Brian spillede blændende i søndags! Skolen ligger i Viby Ring til Kirsten og sig at... Et navn fortolkes i en kontekst og konteksten
Projektledelse i praksis
Projektledelse i praksis - Hvordan skaber man (grundlaget) for gode beslutninger? Martin Malis Business Consulting, NNIT [email protected] 20. maj, 2010 Agenda Project Governance Portfolio Management Project
Principper for Samtidighed og Styresystemer
Principper for Samtidighed og Styresystemer kursusintroduktion og Introduktion til Styresystemer René Rydhof Hansen Februar 2008 PSS 08 (Forelsning 00) Kursus intro./intro. styresystemer Februar 2008 1
Hashing og hashtabeller
Datastrukturer & Algoritmer, Datalogi C Forelæsning 12/11-2002 Hashing og hashtabeller Teknik til at repræsentere mængder Konstant tid for finde og indsætte men ingen sortering af elementerne Specielt
Grundlæggende OOA - OOD
Grundlæggende OOA - OOD Dette kursus henvender sig til personer, der har lille eller ingen erfaring med softwareudvikling. Med udgangspunkt i UML opbygges et solidt kendskab til softwareudviklingens kunst
02101 Indledende Programmering Introduktion til Eclipse
02101 Indledende Programmering Introduktion til Eclipse Version 2018 1 Introduktion I dette kursus lægger vi op til at man bruger det integrerede udviklingsmiljø Eclipse. Basalt set er et integreret udviklingsmiljø
Automatic Code Orchestration from Descriptive Implementations
ft her Automatic Code Orchestration from Descriptive Implementations older Professor Brian Vinter Niels Bohr Institute KU ft her Automatic Code Orchestration from Descriptive Implementations Prototypin
Nyhedsbrev for uddannelsen IT-Engineering marts 2010. Jens Cramer Alkjærsig, [email protected]
Nyhedsbrev for uddannelsen IT-Engineering marts 2010. Jens Cramer Alkjærsig, [email protected] Hermed første nyhedsbrev fra uddannelsen IT-Engineering. Udvælgelse til et nyhedsbrev er en svær opgave, når man
Java Programmering. En bog for begyndere. Skrevet af Henrik Kressner
Java Programmering En bog for begyndere Skrevet af Henrik Kressner Indholdsfortegnelse Introduktion...3 1 Introduktion til Java...4 1.1 Javakoden...4 1.2 Det første program...6 1.2 Skriv til skærmen...6
BRP 6.9.2006 Kursusintroduktion og Java-oversigt
BRP 6.9.2006 Kursusintroduktion og Java-oversigt 1. Kursusintroduktion 2. Java-oversigt (A): Opgave P4.4 3. Java-oversigt (B): Ny omvendings -opgave 4. Introduktion til næste kursusgang Kursusintroduktion:
Hvad er et distribueret objekt? Plan 12.3. Objekter, objektreferencer, metoder, parameteroverførsel. Objekter: notation
Plan 12.3. Oversigt over grundlæggende begreber Java: eksempel på applikation, programmering og oversættelse Uddybning af grundlæggende begreber Java RMI implementation Forklaring af øvelsen Hvad er et
Introduktion til C programmering
Introduktion til C programmering Rasmus Erik Voel Jensen Uge 17 [email protected] Dagens forelæsning Formalia Indledende programmering, main, include, printf, variable, scanf, if-else, statements, eksempler
Datamaters arkitektur og programmering
Mikael Svenstrup Datamaters arkitektur og programmering 1/24 Datamaters arkitektur og programmering MM11: Seriel kommunikation 2 (SW) Indhold Mikael Svenstrup Datamaters arkitektur og programmering 2/24
Tree klassen fra sidste forelæsning
Programmering 1999 Forelæsning 12, fredag 8. oktober 1999 Oversigt Abstrakte klasser. Grænseflader. Programmering 1999 KVL Side 12-1 Tree klassen fra sidste forelæsning class Tree { int age; // in years
Design by Contract. Design and Programming by Contract. Oversigt. Prædikater
Design by Contract Design and Programming by Contract Anne Haxthausen [email protected] Informatics and Mathematical Modelling Technical University of Denmark Design by Contract er en teknik til at specificere
Computere og Netværk (dcomnet)
Computere og Netværk (dcomnet) http://www.cs.au.dk/dcomnet Jens Kargaard Madsen ([email protected]) Jens Bennedsen ([email protected]) dcomnet 1 Computere og netværk Beskrivelse At give den studerende kendskab til computere
Introduktion til ActionScript
Introduktion til ActionScript Kaspar Rosengreen Nielsen [email protected] i n t e r a c t i v e s p a c e s. n e t Kaspar Nielsen, [email protected] 1 Dagens program Opsamling på
Processer og tråde. dopsys 1
Processer og tråde dopsys 1 Motivation.. parallelle processer udnytter hardwaren bedre: Batch operativsystemer (50 erne) hhv. små systemer: Multiprogrammering og time-sharing (fra 60 erne og frem): dopsys
Webserverprogrammering
Webserverprogrammering WSP fortsat - dag 11 Behandling af XML (StAX) Syndikering og RSS med XML JAXB - XML Java-objekter Projekthjælp Dette materiale er under Åben Dokumentlicens, se http://www.sslug.dk/linuxbog/licens.html
Tabelbegrebet. Klassediagrammer (III) Oversigt. Anvendelse af Tabeller. Tabeller og qualified associations
Tabelbegrebet Klassediagrammer (III) Tabeller og qualified associations originally by Michael R. Hansen modified/extended by Anne E. Haxthausen Informatics and Mathematical Modelling Technical University
