REKONFIGURIERBARE ARCHITEKTUREN. Robert Rasche

Ähnliche Dokumente
Übersicht aktueller heterogener FPGA-SOCs

Entwicklung von Partitionierungsstrategien im Entwurf dynamisch rekonfigurierbarer Systeme

Modul A. Modul B. Bisheriger Ansatz für dynamisch und partiell rekonfigurierbare Systeme. Slot 0 Slot 1. Prozessor. Dynamischer Bereich

Programmierbare Logik CPLDs. Studienprojekt B Tammo van Lessen

Motivation. Eingebettetes System: Aufgabe:

Automatisierung mit Hilfe einer rekonfigurierbaren FPGA-Hardwareplattform

Emulation und Rapid Prototyping. Hw-Sw-Co-Design

Emulation und Rapid Prototyping

Teil 1: Digitale Logik

Entwicklung eines Lehrpraktikums auf Basis der Zynq-Plattform

Linux auf FPGAs. Massgeschneiderte Computersysteme. Christoph Zimmermann, Marc-André Beck. 1. März Berner Fachhochschule MedOnStream

Symmetric Multiprocessing mit einer FPGA basierten. Marco Kirschke INF-M3 Seminar Wintersemester 2010/ November 2010

EHP Einführung Projekt A

Open Source - Mikrokontroller für Mixed Signal ASIC

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

Messsysteme für den SwissFEL

Vortrag zum Hauptseminar Hardware/Software Co-Design

Multiplikation. Grundlagen der Rechnerarchitektur Logik und Arithmetik 79

Embedded System Design

Synthese Eingebetteter Systeme. 14 Abbildung von Anwendungen auf Multicore-Systeme

Grundlagen der Rechnerarchitektur. Ein und Ausgabe

13 Programmierbare Speicher- und Logikbausteine


Multicore-Architekturen

Embedded OS-9 auf RISC-Prozessoren von Motorola

Realisierung eines fernsteuerbaren Testcontrollers für FPGA-basierte Systeme. Kolloquium zum Mastermodul INF-PM-FPG

Games with Cellular Automata auf Parallelen Rechnerarchitekturen

IuK-Projekt am Institut für Mikroelektronik und Eingebettete Systeme. Prof. Dr.-Ing. Peter Schulz Sommersemester 2013

Convey, Hybrid-Core Computing

J. Reinier van Kampenhout Robert Hilbrich Hans-Joachim Goltz. Workshop Echtzeit Fraunhofer FIRST

Einführung (1) Erster funktionsfähiger programmgesteuerter Rechenautomat Z3, fertiggestellt 1941 Bild: Nachbau im Deutschen Museum München

Sensorsimulation in Hardware in the Loop-Anwendungen

Die Mikroprogrammebene eines Rechners

Arithmetische und Logische Einheit (ALU)

Untersuchung und Vorstellung moderner Grafikchiparchitekturen

Projektarbeiten WiSe 13/14

Hardware Praktikum 2008

5 Zusammengesetzte und reguläre Schaltungsstrukturen

Softprozessoren. FPGA Development Teil II. Sven Gregori, CN8 6. November UnFUG WS 08/09 Hochschule Furtwangen

Einführung (0) Erster funktionsfähiger programmgesteuerter Rechenautomat Z3, fertiggestellt 1941 Bild: Nachbau im Deutschen Museum München

Platzierung und Verdrahtung massiv-paralleler FPGA-Designs am Beispiel eines Many-Core- Prozessors

Rechnergestützter VLSI-Entwurf

Realisierung einer 32'768-Punkt-FFT für 2 GBytes/s Datenrate auf einem FPGA

Software ubiquitärer Systeme

Codesigned Virtual Machines

Freier Linux Kernel für den Virtex4 FX12

Rechneraufbau und Rechnerstrukturen

Prototyping eines universellen ISM-Band Transmitters auf Basis des NI FlexRIO MDK

Team. Prof. Dirk Timmermann. Siemens AG (ICN Greifswald)

HW/SW Codesign 5 - Performance

Konzepte und Methoden der Systemsoftware. Aufgabe 1: Polling vs Interrupts. SoSe bis P

Vorlesung Rechnerarchitektur. Einführung

Anwendungsgebiete unterschiedlicher FPGA-basierter. Marco Kirschke INF-M2 Anwendung 2 Sommersemester Mai 2010

Multicore Architektur vs. Amdahl`s Gesetz

3. Rechnerarchitektur

Datenflussrechnen mit FPGAs für die biomedizinische Bildverarbeitung

Version 2.0. Copyright 2013 DataCore Software Corp. All Rights Reserved.

FPGA. Übersicht der Aktuellen Bausteine. Inhaltsverzeichnis. 1. Einführung 1.1 Was ist ein FGPA?

Rechner Architektur. Martin Gülck

Willkommen. Programmierung (MGP) von FPGAs. zur Präsentation

Anwenderprogrammierbare

FlexPath - Flexible, Dynamisch Rekonfigurierbare Verarbeitungspfade in Netzwerkprozessoren

Proseminar Rechnerarchitekturen. Parallelcomputer: Multiprozessorsysteme

Grundlagen der Rechnerarchitektur

Einführung. Rechnerarchitekturen Entwicklung und Ausführung von Programmen Betriebssysteme

Schwerpunktprogramm 1148 Rekonfigurierbare Rechensysteme. Rekonfigurierbare Controller

Busse. Dr.-Ing. Volkmar Sieh. Institut für Informatik 3: Rechnerarchitektur Friedrich-Alexander-Universität Erlangen-Nürnberg WS 2008/2009

Dynamische Rekonfigurationvon Echtzeit-Ethernet-Standards mit harten Echtzeitanforderungen

Die Sandy-Bridge Architektur

Rechneraufbau und Rechnerstrukturen

Skalierbare Rechensysteme für Echtzeitanwendungen

Linux auf dem Nios II Softcore Prozessor

Prozessoren in Programmierbarer Logik

DynaCORE-Coprozessor Coprozessor und seine NP-Anbindung

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

CoreSight-Zugang auf dem ZedBoard. Alex Bereza

IHS2 Seminar. Einführung Zusatzfolien A. Integrated HW/SW Systems Group. IHS2 Seminar 06 November 2009 Self-Organization 19 November

Palo Alto Networks Innovative vs. Tradition. Matthias Canisius Country Manager DACH

Mikrocomputertechnik. Thema: Der Aufbau des XC888-Mikrocontrollers -Teil 1 -

Modulare Grafische Programmierung (MGP) von FPGAs

CPU-Caches. Christian Duße. Seminar Effiziente Programmierung in C

Einführung in Peer-To-Peer (P2P) Datenstreaming mit NI FlexRIO

Assembler - Einleitung

Grafikkarten-Architektur

Neues in Hyper-V Version 2

IT-Infrastruktur, WS 2014/15, Hans-Georg Eßer

Grundlagen der Rechnerarchitektur

Fakultät Informatik, Institut für Technische Informatik, Professur für VLSI - EDA. Implementierung eines UDP/IP-Stacks in Hardware.

Transkript:

REKONFIGURIERBARE ARCHITEKTUREN Robert Rasche Dresden, 24.05.2011

01 Motivation Ausgangssituation in eingebetteten Systemen: Verarbeitungsleistung ist auf Embedded Prozessor begrenzt Prozessor (General Purpose) ungünstig, um genau eine Aufgabe sehr gut zu erfüllen zusätzliche (Logik-) Strukturen zur Unterstützung in Custom-Hardware (ASIC, PLA) Problem: Funktionalität ist fixiert, kaum Anpassung (z.b. neue Versionen) möglich also: rekonfigurierbare Hardware nutzen und Prozessorsystem selbst flexibel gestalten TU Dresden, 24.05.2011 Rekonfigurierbare Architekturen Folie 2 von 34

01 Rekonfigurierbare Hardware CISC, RISC (1974) fest integriert (1964) elekronisch (1950) programmierbar (1941) variabel Rechenmaschinen fest Algorithmen rekonfigurierbare Architekturen fortschreitende Integration FPGA (1985) flexibel Ressourcen Trend: frühe Rechner implementieren genau eine Aufgabe eine Hardware für einen Algorithmus programmierbare Universalrechner konfigurierbare Hardware stetig steigende Integration Platz für rekonfigurierbare Rechnerarchitekturen TU Dresden, 24.05.2011 Rekonfigurierbare Architekturen Folie 3 von 34

01 Quelle Struktur und Material für diesen Vortrag: [1] A Survey on Dynamically Reconfigurable Processors Diskussion wesentlicher Aspekte rekonfigurierbarer Systeme Klassifikationskriterien Verlgeich verschiedener kommerzieller Systeme TU Dresden, 24.05.2011 Rekonfigurierbare Architekturen Folie 4 von 34

01 Einführung 02 Plattformen 03 Rekonfiguration 04 Hostprozessoren 05 Programmierung 06 Beispiel 07 Fragen und Abschluss TU Dresden, 24.05.2011 Rekonfigurierbare Architekturen Folie 5 von 34

02 Plattformen TU Dresden, 24.05.2011 Rekonfigurierbare Architekturen Folie 5 von 34

02 Plattformen welche Klassen rekonfigurierbarer Hardware gibt es? Aspekte, Vor- und Nachteile Eignung für rekonfigurierbares Computing TU Dresden, 24.05.2011 Rekonfigurierbare Architekturen Folie 6 von 34

02 CPLD, FPGA feingranulare konfigurierbare Logik sehr große Anzahl an Einheiten (CLBs) Switch-Matrizen zum Verbinden der Einheiten sehr großes Bit-File zur Konfiguration unhandlich bei Abbildung von Prozessoren z.b. Microblaze-Kern TU Dresden, 24.05.2011 Rekonfigurierbare Architekturen Folie 7 von 34

02 FPGA + dedizierte Blöcke chipdesignmag.com nicht nur feingranulare Logik sondern häufig benötigte Blöcke für Arithmetik (wortweise Verarbeitung) Signalverarbeitung v.a. Multiplikation, MAC Registerfiles verteilter SRAM TU Dresden, 24.05.2011 Rekonfigurierbare Architekturen Folie 8 von 34

02 FPGA + IP-Core integrierter Prozessorkern, umgeben von rekonfigurierbaren Blöcken verschiedene optimierte IP-Cores (ARM, PowerPC, AVR) Tools für die Hardware-Software Cosynthese auch andere Einheiten als Hard-Core: (Ethernet, PCI,...) auch Mehrkernsysteme TU Dresden, 24.05.2011 Rekonfigurierbare Architekturen Folie 9 von 34

02 CGRA, rdpa, PE-Arrays [4] Coarse Grain Reconfigurable Architecture oder reconfigurable Data Path Array Verarbeitungseinheiten für Bitgruppen und ganze Worte (4bit, 8bit,..., 32bit) üblicherweise ALUs und Wort-Register als Zellen wortweises Routing, Routing zu Nachbarzellen nur Bruchteil an Konfigurationsdaten ggü. FPGA. (je nach Wortbreite 1 / 10... 1 / 100) ineffizient für Bit-Operationen und spezifische Logik TU Dresden, 24.05.2011 Rekonfigurierbare Architekturen Folie 10 von 34

02 PE Arrays Aufbau einer Zelle [?] Relativ komplexe Einheiten für wortbreite Verarbeitung. verschiedenste Ausführungen Shifter, Mask, ALU, Register RAM-Zellen Routing als Teil der Zelle homogene oder heterogene Anordnung (Schachbrett, Streifen) im Array TU Dresden, 24.05.2011 Rekonfigurierbare Architekturen Folie 11 von 34

02 PE Arrays Aufbau einer Zelle M PE M PE M PE M PE PE M PE M PE M PE M M PE M PE M PE M PE PE M PE M PE M PE M M PE M PE M PE M PE M PE M PE M PE M PE M PE M PE M PE M PE M PE M PE M PE M PE [?] Relativ komplexe Einheiten für wortbreite Verarbeitung. verschiedenste Ausführungen Shifter, Mask, ALU, Register RAM-Zellen Routing als Teil der Zelle homogene oder heterogene Anordnung (Schachbrett, Streifen) im Array TU Dresden, 24.05.2011 Rekonfigurierbare Architekturen Folie 11 von 34

02 Prozessor Arrays Einfache Prozessoren und verteiltes RAM im Array jede Prozessorzelle hat eigene Instruktionsspeicher und eigenen Instruktionspointer benachbarte RAM-Blöcke addressierbar Umkonfiguration über die Software der Prozessorzelle TU Dresden, 24.05.2011 Rekonfigurierbare Architekturen Folie 12 von 34

02 Zusammenfassung Spielraum für konfigurierbare Hardwareplattform immer: Array-Struktur für die konfigurierbare Hardware unterschiedliche Granularität und Komplexität der Zellen (FPGA bis Prozessorarray) dedizierte optimierte Einheiten (Multiplizierer bis Ethernet) verteiltes RAM im Array Host-Prozessor System on a Programmable Chip (SoPC) TU Dresden, 24.05.2011 Rekonfigurierbare Architekturen Folie 13 von 34

03 Rekonfiguration TU Dresden, 24.05.2011 Rekonfigurierbare Architekturen Folie 14 von 34

03 Rekonfiguration Wünschenswert: Umkonfiguration des Systems zur Laufzeit Hardware wird zu verschiedenen Zeiten der Ausführung mit gerade passender Konfiguration betrieben eine Verarbeitungseinheit (Zelle, Block) wird für mehrere Aufgaben genutzt bessere durchschnittliche Auslastung der Chipfläche ermöglicht auch adaptive Hardware TU Dresden, 24.05.2011 Rekonfigurierbare Architekturen Folie 15 von 34

03 Rekonfiguration Aber: Konfiguration ist (daten)aufwändig FPGA Konfigurationsfile sehr groß (z.b. Virtex4 XC4VFX60 : 20 MiB [3]) zeitaufwendige Umkonfiguration über Bitstrom (ms bis s) oder wortweise (ms) gesamter Baustein währenddessen angehalten oder in Reset-Modus für on-the-fly Rekonfiguration ungeeignet TU Dresden, 24.05.2011 Rekonfigurierbare Architekturen Folie 16 von 34

03 Partielle Rekonfiguration 1 [4] Besser: Partielle Rekonfiguration: nur Teile des Bitfiles neu schreiben differentiell: gezielt kleine Bereiche verändern (einzelne Bits oder Worte) z.b. Datenpfad anders routen modular: ein reservierter Bereich wird mit neuem Bitfile geladen neuer Hardwareblock für eine neue Aufgabe Rest der Konfiguration kann weiterlaufen TU Dresden, 24.05.2011 Rekonfigurierbare Architekturen Folie 17 von 34

03 Partielle Rekonfiguration 2 Konfigurationsdaten liegen im System (on chip) Ausliefern relativ schnell möglich (10µs) aber: Verarbeitung währenddessen zumindest teilweise unterbrochen nicht schnell genug! TU Dresden, 24.05.2011 Rekonfigurierbare Architekturen Folie 18 von 34

03 Konfigurationskontexte 1 [1] Kontextbasierte Rekonfiguration: mehrere Konfigurationen für jede Einheit im Hintergrund (globales) Kontextsignal: legt fest, welche davon verwendet wird sehr schnell (1 Takt), keinerlei Unterbrechung nötig Konfigurationsspeicher ist über die Einheiten verteilt Anzahl und Größe der Kontexte bestimmt benötigte SRAM-Größe pro Zelle effizient für Coarse-Grain und PE-Arrays TU Dresden, 24.05.2011 Rekonfigurierbare Architekturen Folie 19 von 34

03 Konfigurationskontexte 2 [1] Kontexte können als Instruktionen für eine Einheit betrachtet werden: Umkonfiguration in jedem Verarbeitungsschritt (Takt) vollkommen anderes Verhalten der Einheit (andere Instruktion) Konfigurationsspeicher ist Mikroprogrammspeicher Auswahl eines Kontextes entpricht Ausführung einer Instruktion TU Dresden, 24.05.2011 Rekonfigurierbare Architekturen Folie 20 von 34

04 Hostprozessoren TU Dresden, 24.05.2011 Rekonfigurierbare Architekturen Folie 21 von 34

04 Hostprozessor Ein Prozessorkern zur Kontrolle des rekonfigurierbaren Teils leistungsfähiger General Purpose Kern Erweiterung der Möglichkeiten des Hosts mit konfigurierbarer Logik Array ist Beschleuniger für den Prozessor TU Dresden, 24.05.2011 Rekonfigurierbare Architekturen Folie 22 von 34

04 Integration der Beschleunigerfunktionen Möglichkeiten: Erweiterung des Befehlssatzes des Hosts um spezielle Instruktionen Array wird als Ausführungseinheit für diese konfiguriert und verwendet Einsatz als Coprozessor : auf Tasks von Host warten komplett unabhängige Ausführung des Tasks und Rückschreiben des Ergebnisses TU Dresden, 24.05.2011 Rekonfigurierbare Architekturen Folie 23 von 34

04 Datenaustausch mit Hostprozessor verschiedene Möglichkeiten, Daten zwischen Array und Host zu vermitteln: Zugriff auf gemeinsamen Hauptspeicher (oder Cache) Matrix und Host arbeiten (kooperativ) parallel über Systembus des Host-Datenpfades Austauschregister: vom Prozessor und von einigen Einheiten des Arrays aus zugreifbar TU Dresden, 24.05.2011 Rekonfigurierbare Architekturen Folie 24 von 34

05 Programmierung TU Dresden, 24.05.2011 Rekonfigurierbare Architekturen Folie 25 von 34

05 Programmiermodelle Problem: Wie Funktionalität auf Software (für den Host) und Hardwarebeschleuniger (Matrix) aufteilen? Zuordnung: Was wird Software, was Hardware? Automatisierung: Was ist die beste Lösung? Beschreibung: Programmier- oder HW-/Verhaltenspache? TU Dresden, 24.05.2011 Rekonfigurierbare Architekturen Folie 26 von 34

05 Hardware-Software-Codesign Hardware- und Softwareteile der Anwendung werden vom Programmierer abgestimmt oft verschiedene Beschreibungsformen gemischt saubere Lösungen, aber nicht immer optimal intensive Tests notwendig TU Dresden, 24.05.2011 Rekonfigurierbare Architekturen Folie 27 von 34

05 Hardware-Software-Cosynthese Partitionierung und Synthese erfolgen automatisch einheitliche High-Level Beschreibung (z.b. C, Fortran) Erkennen von Parallelismus im Datenflussgraphen des Programmes Automatisch Synthese von Konfigurationen für kritische parallelisierbare Abschnitte (komplexe Ausdrüke, Schleifenkerne) Erzeugen von passendem Maschinencode, der die synthetisierten Einheiten ausnutzt TU Dresden, 24.05.2011 Rekonfigurierbare Architekturen Folie 28 von 34

05 Online-Synthese Erzeugen von geeigneten Hardwarekonfigurationen, während das Programm läuft Profiling der laufenden Anwendung Erkennen laufzeitkritischer Abschnitte Synthese auf dem Zielsystem selbst Synthesejob läuft, wenn Hostprozessor frei ist benötigt synthesefähige Repräsentation des Programms (z.b. Bytecode) TU Dresden, 24.05.2011 Rekonfigurierbare Architekturen Folie 29 von 34

06 Beispiel TU Dresden, 24.05.2011 Rekonfigurierbare Architekturen Folie 30 von 34

06 IPFlex DAP/DNA-2 (2004) Host-Array-Verbindung: über Systembus I/O-Controller direkt mit dem Array verbunden Konfigurationsspeicher nahe am Array (4 Kontexte) 576 KiB Speicher im Array [2] TU Dresden, 24.05.2011 Rekonfigurierbare Architekturen Folie 31 von 34

06 DAPDNA-2 Processing Element [2][4] verschiedene Elemente vorhanden ALU-PE: 16 bit ALU und Multiplizierer Interconnect-PE: am Rand eines Segments Routing innerhalb Segment über zwei Matrizen 6 Segmente zu je 8x8 PEs TU Dresden, 24.05.2011 Rekonfigurierbare Architekturen Folie 32 von 34

06 DAPDNA-2 Processing Element [2][4] verschiedene Elemente vorhanden ALU-PE: 16 bit ALU und Multiplizierer Interconnect-PE: am Rand eines Segments Routing innerhalb Segment über zwei Matrizen 6 Segmente zu je 8x8 PEs TU Dresden, 24.05.2011 Rekonfigurierbare Architekturen Folie 32 von 34

06 DAPDNA-2 Processing Element verschiedene Elemente vorhanden ALU-PE: 16 bit ALU und Multiplizierer Interconnect-PE: am Rand eines Segments Routing innerhalb Segment u ber zwei Matrizen 6 Segmente zu je 8x8 PEs [2][4] TU Dresden, 24.05.2011 Rekonfigurierbare Architekturen Folie 32 von 34

06 DAP/DNA-2 Toolchain eigene C-artige Programmiersprache eigene Entwicklungsumgebung grafisches Design der Algorithmen möglich MATLAB/Simulink - Integration TU Dresden, 24.05.2011 Rekonfigurierbare Architekturen Folie 33 von 34

07 Fragen und Abschluss TU Dresden, 24.05.2011 Rekonfigurierbare Architekturen Folie 34 von 34

H. Amano A Survey on Dynamically Reconfigurable Processors, IEICE TRANS. COMMUN., VOL.E89 B, NO.12, 2006 Tomoyoshi S. A Dynamically Reconfigurable Processor with 376 32-bit Processing Elements HotChips17 16 Aug 2005 Virtex-4 FPGA Configuration User Guide, Xilinx, UG071 (v1.11) June 9, 2009 und ja: auch und vor allem google und wikipedia für manche Bilder TU Dresden, 24.05.2011 Rekonfigurierbare Architekturen Folie 34 von 34