Java-Bytecode-Prozessor SHAP

Ähnliche Dokumente
Multi-Port-Speichermanager für die Java-Plattform SHAP

Simulative Verifikation und Evaluation des Speichermanagements einer Multi-Core-Prozessorarchitektur am Beispiel von SHAP

Fachgebietsvorstellung g 2010

ASIC-SYNTHESE DER SHAP-MIKROARCHITEKTUR

Implementierung einer adaptiven Speicherarchitektur für einen heterogenen SHAP-Mehrkernprozessor mit Hardwarebeschleuniger

Realisierung eines Speichermanagements zur Zugriffsvirtualisierung von konkurrierenden Nutzerdesigns auf Rekonfigurierbarer Hardware

Studie zum Einsatz eines Network-on-a-Chip für eine Many-Core- Java-Bytecode-Architektur

Konzepte von Betriebssystem- Komponenten:

Parametrisierbare Busschnittstelle für IP-Cores

Überblick über Java-Umgebungen auf Embedded-Plattformen

Architekturen, Werkzeuge und Laufzeitumgebungen für eingebettete Systeme

Vorstellung der Fachgebiete

Diplomarbeit Antrittsvortrag

Virtueller Speicher und Memory Management

Implementierung eines universellen IPv6 Protokollstapels

Java-Prozessoren. Die Java Virtual Machine spezifiziert... Java Instruktions-Satz. Datentypen. Operanden-Stack. Konstanten-Pool.

Device Treiber für FlexPath- Netzwerkprozessoren

Die Sandy-Bridge Architektur

Vorstellung der SUN Rock-Architektur

Simulative Verifikation und Evaluation des Speichermanagements einer Multi-Core-Prozessorarchitektur am Beispiel von SHAP

Untersuchungen zur effizienten Implementierung eines mathematischen Algorithmus in einem FPGA am Beispiel eines Sudoku-Lösers

Konzepte von Betriebssystem-Komponenten

Computeranwendung in der Chemie Informatik für Chemiker(innen) 3. Software

1991 Forschung von Sun Microsystems Green Project. kleine Programme über TV Kanäle, interaktives Fernsehen

Hardware und Gerätetreiber

Liste Programmieren Java Überblick

Universelle Speicherschnittstelle für große externe Speicher

High Performance Embedded Processors

Just-In-Time-Compiler (2)

Implementierung eines Dateisystems für Java-basierte eingebettete Systeme

Martin Stiller, Fakultät Informatik, Institut für Technische Informatik. LLVA: Eine virtuelle Befehlssatzarchitektur

DYNAMISCHE ARCHITEKTURADAPTION VON HARDWARE-AGENTENSYSTEMEN

Universelle Speicherschnittstelle für große externe Speicher

Just-In-Time-Compiler (2)

<Insert Picture Here> JRockit Eine Alternative

II.1.1. Erste Schritte - 1 -

Die Architektur des Sun UltraSPARC T2 Prozessors, Anwendungsszenarien

Software Entwicklung 1

Echtzeit-Multitasking

Echtzeit-Multitasking

Digitale Signalprozessor - Architekturen im Überblick

Thread basierte partielle Rekonfiguration von SoC Systemen. Frank Opitz INF-M1 Anwendung 1 - Wintersemester 2009/

2. Der ParaNut-Prozessor "Parallel and more than just another CPU core"

Hybride Apps DPR und Android auf dem Xilinx ZYNQ. Endric Schubert, Missing Link Electronics Fabian Zentner, Univ. Ulm

Exkurs 1: Hintergrund zu Java und UML

Entwurf und Implementierung einer parametrierbaren Trace- Hardware am Beispiel der SHAP-Mikroarchitekur

II.1.1. Erste Schritte - 1 -

Java Performance Tuning

Entwurf und Implementierung einer Prozessinterkommunikation für Multi-Core CPUs Workshop Echtzeit 2013

II.1.1. Erste Schritte - 1 -

Testen nebenläufiger Objekte

Einführung in die Programmiersprache C

Cswitch Seminar. HWS 08 Von Andreas Peters. Cswitch Seminar, Andreas Peters

Java Garbage Collector: Funktionsweise und Optimierung. Mathias Dolag Prof. Dr. Peter Mandl (DOAG 2012, )

Dynamische Speicherverwaltung

Implementierung der Jikes Research Virtual Machine

Energieeffizienz und Performance von Networks-on-Chip

C-to-CUDA-Compiler. Johannes Kölsch. October 29, 2012

Evaluierung der QoS-Unterstützung in TAO/ACE. Großer Beleg - Zwischenstand. Ansgar Konermann 16. Juli 2002

Fakultät Informatik Professur für VLSI-Entwurfssysteme, Diagnostik und Architektur. Diplomverteidigung

CUDA. Moritz Wild, Jan-Hugo Lupp. Seminar Multi-Core Architectures and Programming. Friedrich-Alexander-Universität Erlangen-Nürnberg

Java als erste. Programmiersprache. Java 2 Plattform. Von Prof. Dr. Joachim Goll Cornelia Weiß Peter Rothländer. 2., durchgesehene Auflage

Memory Models Frederik Zipp

Aufbau eines modernen Betriebssystems (Windows NT 5.0)

Java Virtual Machine (JVM) Bytecode

RO-Tutorien 15 und 16

Erhöhung der Ausfallsicherheit einer Mikropumpensteuerung mit Hilfe einer hierarchisch organisierten, heterogenen Controllerplattform

Ressourceneffiziente Informationsverarbeitung Universität Bielefeld, CITEC, AG-KS Martin Kaiser.

Compilerbau + Virtuelle Maschinen

DIPLOMARBEIT. Entwurf und Implementierung eines modularen USB-Stacks für eingebettete Controller ohne Betriebssystem. Uwe Pfeiffer

Embedded Systems Themen am : 32 Bit Controller für Embedded Systems (von Atmel)

Google s JavaScript Engine: V8

Verteidigung des INF-PM-FP-ANW: Entwicklung einer MIPS-CPU

Entwicklung von Partitionierungsstrategien im Entwurf dynamisch rekonfigurierbarer Systeme

ARM Cortex-M Prozessoren. Referat von Peter Voser Embedded Development GmbH

Heiko Bobzin Poet Software GmbH

Entwicklung einer parametrierbaren Steuer-Prozessor-Einheit für den Einsatz in Mixed-Signal ASICs

Übung Softwareentwicklung 1, WS0910 Gemeinsame Einführung

Agenda. Informatik I WS05/06 Folien von Tobias Dezulian

G1 reif für den großen Auftritt?

Technische Grundlagen der Informatik 2 SS Einleitung. R. Hoffmann FG Rechnerarchitektur Technische Universität Darmstadt E-1

Realisierung einer MC-basierten Optionspreisberechnung mit FloPoCo

Untersuchung und Vorstellung moderner Grafikchiparchitekturen

Rechnergrundlagen. Vom Rechenwerk zum Universalrechner

Sicherheitskritische Echtzeitsysteme mit Java

Tutorium Rechnerorganisation

Rechnerorganisation. 1. Juni 201 KC Posch

Prof. Dr. Uwe Brinkschulte. Lehrstuhl für Eingebettete Systeme

Lehrstuhl für Informatik 12 (Hardware-Software-Co-Design) Friedrich-Alexander-Universität Erlangen-Nürnberg Prof. Dr.-Ing. J.

Seminar: Multi-Core Architectures and Programming

Single- und Multitasking

Java: Kapitel 1. Überblick. Programmentwicklung WS 2008/2009. Holger Röder Holger Röder

Gliederung. Was ist CUDA? CPU GPU/GPGPU CUDA Anwendungsbereiche Wirtschaftlichkeit Beispielvideo

Verteidigung der Studienarbeit ANALYSE DER BEOBACHTBARKEIT DER FEHLERFORTPFLANZUNG IN EINEM MIKROPROZESSOR ANHAND VERSCHIEDENER TRACE-KONFIGURATIONEN

Vorlesung Programmieren

Military Air Systems

Rückschlüsse durch Host- Performance-Daten auf das Datenbankverhalten. DOAG Regio Karlsruhe 13. Juni 2013

Die Intel Atom Architektur

In heutigen Computern findet man schnellen/teuren als auch langsamen/billigen Speicher

FPGA-basierte Automatisierungssysteme

Transkript:

Fakultät Informatik Institut für Technische Informatik, Professur für VLSI-Entwurfssysteme, Diagnostik und Architektur Java-Bytecode-Prozessor SHAP Hauptseminar Martin Zabel (martin.zabel@tu-dresden.de) Thomas B. Preußer, Peter Reichel Professur für VLSI-Entwurfssysteme, Diagnostik und Architektur Institut für Technische Informatik http://vlsi-eda.inf.tu-dresden.de Dresden, 23.04.2008

Motivation Objekt-orientierte Programmierung ist vorteilhaft für die schnelle und einfache Entwicklung komplexer Applikationen. Java ist sehr populär: Definition der JVM addressiert Portabilität und Sicherheit. Implementierungen der JVM für viele Plattformen verfügbar. Kompakter Java-Bytecode bedingt geringen Speicherbedarf und kurze Download-Zeiten. Statt JIT-Compiler / Native Bytecode- Interpreter Ausführung TU Dresden, 23.04.2008 Java-Bytecode-Prozessor SHAP Folie 2 von 14

Features von SHAP Eingebette Java-Mikroarchitektur für sicherheitsrelevante, echtzeitfähige und mehrfädige Applikationen ohne untergeordnetes Betriebssystem. Neuartige Konzepte für Echtzeit-Unterstützung: integriertes Stack- und Thread-Management, nebenläufiger, CPU-unabhängiger Garbage Collector, preemptives Round-Robin-Scheduling. Vielfältige Unterstützung von objekt-orientierten Konzepten: automatisches Heap-Management, strukturierte Ausnahmebehandlung, Mehrfachvererbung durch Interfaces, Anwendungsbereiche: Automatisierungstechnik, Sensorik, Netzwerktechnik,... API: Connected Limited Device Configuration TU Dresden, 23.04.2008 Java-Bytecode-Prozessor SHAP Folie 3 von 14

SHAP-Linker Statische Auflösung von Verweisen. Ersetzung von Native-Methoden durch Spezial-Bytecodes. Einfügen von Bytecodes für Interface-Handling. [1] Bytecode-Optimierung. Constant-Pool Elimination. Aggressive Inlining. Dynamisches Nachladen von Applikationen prinzipiell möglich. Java Files Class Files SHAP File javac / ecj ShapLinker Download & Execute TU Dresden, 23.04.2008 Java-Bytecode-Prozessor SHAP Folie 4 von 14

SHAP-Mikroarchitektur [2] SHAP Microarchitecture configurable Wishbone Bus CPU ALU Stack UART Data 32 Memory 32 Manager 32 Method Cache 8 Garbage 32 Code Collector DDR: 16 SDR: 32 Controller Graphics Unit Ethernet MAC DMA Ctrl Memory SRAM DDR RAM TU Dresden, 23.04.2008 Java-Bytecode-Prozessor SHAP Folie 5 von 14

CPU [3] Abarbeitung der Java-Bytecodes durch Mikroprogramme. 4-stufige Pipeline: BCF IF ID EX 57 Mikrocode-Befehle mit 9-Bit-Befehlsformat BCF IF ID EX Stack-orientiert, kein Registerspeicher. IF ID EX Mikrokode-Datenspeicher, Werte zu 32 Bit: 16 Variablen, 48 Konstanten (an Stelle von Direktwerten), 64 Sprünge. Preemptives Round-Robin-Scheduling. Wishbone Master. BCF IF ID EX TU Dresden, 23.04.2008 Java-Bytecode-Prozessor SHAP Folie 6 von 14

Multi-Threaded Stack [4] On-Chip-Speicher. Unterteilung des Speichers in Blöcke gleicher Größe. Verkettung dieser Blöcke zu einem Stack bzw. zur Freiliste. Eigenständiger Kontextwechsel. Management der Methoden-Frames. TOS und NOS in Register. Beispiel: 8 KByte Stack, bis zu 32 Threads Stack FB Heap Thread... stack_hdl... (inactive) SP Thread... stack_hdl... (active) Registered State Block RAM TU Dresden, 23.04.2008 Java-Bytecode-Prozessor SHAP Folie 7 von 14

Method Cache [5] Zur Zeit: Caching der kompletten Methode vor deren Ausführung. In Zukunft: Smart Prefetch Caching. Stack-basierte Organisation: 3-fach assoziativ: Return, Recursive Invoke, Re-Invoke. Verwaltungsdaten ebenfalls im Cache-Speicher abgelegt. 90% Trefferrate typisch. Ring-Puffer. Optional: Parallele Stacks durch mehrere Slices. Beispiel: 2 KByte Current free i() h() g() f() Return Invoke TU Dresden, 23.04.2008 Java-Bytecode-Prozessor SHAP Folie 8 von 14

Multi-Port Memory Manager [6] Kapselt die Heap-Verwaltung. Mehrere Ports für verschiedene Systemkonfigurationen. Pipelined Reads für hohen Durchsatz. CPU Method Cache Data Code Memory Manager GC CPU Method Cache Data Code Memory Manager CPU Method Cache DMA Data Code Memory Manager Garbage Collector CPU Method Cache DMA Data Code Garbage Collector TU Dresden, 23.04.2008 Java-Bytecode-Prozessor SHAP Folie 9 von 14

Garbage Collector [7] Nebenläufig und CPU-unabhängig. Stack-Monitoring. Segmentierung des Heaps: Schnelle Allokation in konstanter, vorhersagbarer Zeit. Segmentfreigabe durch Objektverschiebung; sofern gewinnbringend. Scannen / Verschieben von Objekten ist unterbrechbar. kurze Latenz für Zugriffe durch CPU/Method-Cache/DMA, automatische Umlenkung von Zugriffen. GC-Policy zur Laufzeit konfigurierbar. Idle trigger Root Scan Heap Scan Mark Seg Clean Seg no Next Seg? yes no Profit? yes TU Dresden, 23.04.2008 Java-Bytecode-Prozessor SHAP Folie 10 von 14

Aktuelle Projekte Im Bereich Hardware: Erweiterung des GC auf schwache Referenzen, Multi-CPU-SHAP, IPv4-Preprozessor, USB-Controller, DDR-SDRAM-Controller mit ECC. Im Bereich Software: Spiel SkyRoads mit 3D-Engine. SLIP-Protokoll. TU Dresden, 23.04.2008 Java-Bytecode-Prozessor SHAP Folie 11 von 14

Interesse? http://shap.inf.tu-dresden.de Themen sowohl im Bereich Hardware... Hardware-unterstützer Scheduler, Fortgeschrittene Methoden-Cache-Organisation, Objekt-Cache, Controller für I/O und Speicher....als auch im Bereich Software: Diverse Applikationen. Portierung einer.net-laufzeitumgebung, Serialisierung von Objekten, Dynamisches Nachladen von Applikationen, TCP/IP-Stack für geg. Ethernet-Controller. TU Dresden, 23.04.2008 Java-Bytecode-Prozessor SHAP Folie 12 von 14 B e l e g D i p l o m K o m p l e x p r a k t i k u m

Literatur [1] PREUSSER, T. B.; ZABEL, M.; SPALLEK, R. G.: Enabling Constant-Time Interface Method Dispatch in Embedded Java Processors. In: The 5th International Workshop on Java Technologies for Real-time and Embedded Systems - JTRES 2007, 2007 [2] ZABEL, M.; PREUSSER, T. B.; REICHEL, P.; SPALLEK, R. G.: Secure, Real-Time and Multi-Threaded General-Purpose Embedded Java Microarchitecture. In: Proceedings of the 10th Euromicro Conference on Digital System Design Architectures, Methods and Tools (DSD 2007), IEEE Press, August/2007 [3] ZABEL, M.; PREUSSER, T. B.; REICHEL, P.; SPALLEK, R. G.: SHAP Secure Hardware Agent Platform. In: Dresdner Arbeitstagung Schaltungs- und Systementwurf DASS 2007. Bergstr. 70, D-01069 Dresden: TUDpress, Verlag der Wissenschaften GmbH, Mai/2007. ISBN 978 3 940046 28 4 TU Dresden, 23.04.2008 Java-Bytecode-Prozessor SHAP Folie 13 von 14

[4] PREUSSER, T. B.; ZABEL, M.; REICHEL, P.: The SHAP Microarchitecture and Java Virtual Machine. Fakultät Informatik, Technische Universität Dresden, Forschungsbericht TUD-FI07-02, 2007. ISSN 1430 211X [5] PREUSSER, T. B.; ZABEL, M.; SPALLEK, R. G.: Bump-Pointer Method Caching for Embedded Java Processors. In: The 5th International Workshop on Java Technologies for Real-time and Embedded Systems - JTRES 2007, 2007 [6] ZABEL, M.; REICHEL, P.; SPALLEK, R. G.: Multi-Port-Speichermanager für die Java-Plattform SHAP. In: Dresdner Arbeitstagung Schaltungs- und Systementwurf DASS 2008, To be published. [7] REICHEL, P.: Entwurf und Implementierung verschiedener Garbage-Collector-Strategien für die Java-Plattform SHAP, Technische Universität Dresden, Großer Beleg, 2007 TU Dresden, 23.04.2008 Java-Bytecode-Prozessor SHAP Folie 14 von 14