200 likes | 428 Views
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
E N D
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 JOP-speciale: Jan Lauritzen & Mads Pedersen
Speciale generelt • Forskningsorienteret • Ikke produktorienteret (som afgangsprojekt) JOP-speciale: Jan Lauritzen & Mads Pedersen
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 JOP-speciale: Jan Lauritzen & Mads Pedersen
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” (RTSJ).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) JOP-speciale: Jan Lauritzen & Mads Pedersen
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. JOP-speciale: Jan Lauritzen & Mads Pedersen
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 JOP-speciale: Jan Lauritzen & Mads Pedersen
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); -- Internt tælle-signal begin 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 elseCOU <= COU - 1; end if; else COU <= COU; end if; end if; end process; COU_OUT <= COU; -- Internt signal forbindes til udgangene end Behavioral; JOP-speciale: Jan Lauritzen & Mads Pedersen
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. JOP-speciale: Jan Lauritzen & Mads Pedersen
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 JOP-speciale: Jan Lauritzen & Mads Pedersen
JOP-hardware • FPGA: • Altera CycloneFPGA Board • I/O-board: • BaseioExpansion Board JOP-speciale: Jan Lauritzen & Mads Pedersen
Data path JOP-speciale: Jan Lauritzen & Mads Pedersen
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 JOP-speciale: Jan Lauritzen & Mads Pedersen
SW/HW co-design • Eksempel med 32-bit multiplikation i hhv.: • Java (software) • Micro code (JOP’s eget instruction set) • VHDL (hardware) JOP-speciale: Jan Lauritzen & Mads Pedersen
RTJ på JOP JOP-speciale: Jan Lauritzen & Mads Pedersen
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: JOP-speciale: Jan Lauritzen & Mads Pedersen
Realtidstråde JOP-speciale: Jan Lauritzen & Mads Pedersen
Andre informationer • Skedulering • Garbage Collection • Forudsigelighed JOP-speciale: Jan Lauritzen & Mads Pedersen
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 } } } JOP-speciale: Jan Lauritzen & Mads Pedersen
JOP in action! JOP-speciale: Jan Lauritzen & Mads Pedersen