Implementierungsansätze für ein FPGA basiertes Multiprozessor …ubicomp/... · 2009-11-25 ·...

Preview:

Citation preview

Implementierungsansätze für ein FPGA basiertes Multiprozessor

SystemSystem

Marco Kirschke

INF-M1 – Anwendung 1 - Wintersemester 2009/2010

25. November 2009

Inhalt

� Motivation

� FPGA-based Embedded Systems

� Entwurfsübersicht zu MPSoC� Entwurfsprozess der Hardware Modellierung� Entwurfsprozess der Hardware Modellierung� Festlegung der Multiprozessor Architektur

� Multiprozessor System on Chip mit Altera Nios II

� Zusammenfassung

25.11.2009Marco Kirschke2

Motivation

Zielsetzung für den Masterstudiengang

� Erfahrungen der Bachelor Arbeit ausbauen

� Masterstudiengang „Verteilte Systeme“

� Übersicht zu Techniken und Methoden von Multiprozessor Systemen Multiprozessor Systemen

� Adaptierung von etablierten Vorgehensweisen auf FPGA basierte Systeme

� Technologie Grundlagen für ein späteres Arbeitsumfeld

25.11.2009Marco Kirschke4

Aufgabengebiete an der HAW

� SoC Fahrzeug� Multiprozessor System für verschiedene Anforderungen

des Carolo Cups

� 3D Audio� SoC mit einer Audioquelle ausgelastet� Multiprozessor System für

� mehrere Audioobjekte

� Klangobjekte im Raum platzieren (Positionsbestimmung)

� Verwaltungsprozessor für Szenarien

� Living Place Hamburg� Probleme bei der Vielzahl an Sensoren?

25.11.2009Marco Kirschke5

� Entwicklung von Embedded Systems� Einschränkende Randbedingungen

Zielsetzung

� Einsatz von FPGAs

� Flexible Plattformen

25.11.2009Marco Kirschke6

� Einsatz von FPGAs

� Entwicklung von Embedded Systems� Einschränkende Randbedingungen

Zielsetzung

� Einsatz von FPGAs

� Flexible Plattformen

25.11.2009Marco Kirschke7

� Einsatz von FPGAs

� Optimierung des Entwicklungsprozesses

� Entwicklung von Embedded Systems� Einschränkende Randbedingungen

Zielsetzung

� Einsatz von FPGAs

� Flexible Plattformen

25.11.2009Marco Kirschke8

� Einsatz von FPGAs

� Skalierung des Systems

� Optimierung des Entwicklungsprozesses

FPGA-basedEmbedded SystemsEmbedded Systems

Einsatzgebiete

Automotive Wireline & WirelessSolutions

25.11.2009Marco Kirschke10

Data Storage &Processing

Consumer ElectronicsAerospace &

Military

Anbieter

� Low Cost/Power FPGA� XPGA (non-volatile, flash-based FPGA)

25.11.2009Marco Kirschke11

� Low Cost/Power FPGA� Radiation-Tolerant FPGA� ARM Prozessoren verfügbar

Xilinx und AlteraProduktpalette Xilinx Altera

High Performance FPGA

VIRTEX Family Stratix Series

Low Cost/Power FPGA

SPARTAN Family Cyclone Series

25.11.2009Marco Kirschke12

SPARTAN Family Cyclone Series

Entwicklungsumgebung

ISE Design Suite Quartus

System on Chip

Hardware

SoftwareXilinx Platform Studio/EDKXilinx Platform Studio/SDK

SOPC Builder/QuartusNIOS IDE

Soft Processor Cores PPC 440, PPC405, MicroBlaze

C68000, ARM Cortex, NIOS2

� Xtensa Xplorer IDE zur Konfiguration

Tensilica

� Konfigurierbare Prozessoren

� Kunden können sich auf dieSoftware Entwicklung

25.11.2009Marco Kirschke13

Software Entwicklung konzentrieren

� Bereitstellung von Anwendungen zur HW und SW Erstellung

EntwurfsübersichtMultiprocessor System on ChipMultiprocessor System on Chip

Multiprocessor System on Chip

� Erzeugung der Komponenten eines MPSoC� starke Abhängigkeit an die Anforderungen des Systems

� Entwurfsprozess der Hardware Modellierung

25.11.2009Marco Kirschke15

Hardware Modellierung

� Zusammenführung der Software und Hardware Komponenten

� Festlegung der MP Architektur

Entwurfsprozess der HW Modellierung

� Entwurfsmethoden� Full-Custom-Entwurf � individueller Entwicklungsansatz

� Semi-Custom-Entwurf � Einsatz von Codegeneratoren

� Hohes Optimierungspotential � erhöhter Aufwand

25.11.2009Marco Kirschke16

� Semi-Custom-Entwurf � Einsatz von Codegeneratoren

� verminderte Entwicklungszeit � begrenzte Konfiguration

� Erzeugung der RTL Beschreibung in VHDL oder Verilog

� Vorgehensweise

Entwurfsprozess der HW Modellierung

� Testen des Entwurfskonzeptes (Simulation mit C oder MATLAB)

� Spezifikation des Systems

� Erzeugung des „Programming Files“� Verteilung der Gatterebene auf die HW (Fitter – Place&Route)

� Simulation des Syntheseergebnisses (z.B. in ModelSim)

� Synthese (Umsetzung der RTL Beschreibung auf Gatterebene)

25.11.2009Marco Kirschke17

Festlegung der Multiprozessor Architektur

� Welche Aufgaben übernehmen die Prozessoren?

� Wie sind die Prozessoren angeordnet?

� Prozessorkoordination in HW oder SW?� Anpassung der HW an die Software des MPSoC?� Anpassung der HW an die Software des MPSoC?

oder� Anpassung der SW an die Hardware des MPSoC?

25.11.2009Marco Kirschke18

Wechsel zu Multiprozessor Systemen

� wachsende Anforderungen an Rechenleistung

� Abweichung von Erhöhung der Taktraten

� Senkung des Energiebedarfs und der WärmeentwicklungWärmeentwicklung

� Einsatz von Spezial- bzw. Coprozessoren� Netzwerkprozessoren� Medienprozessoren (Audio/Video)� Kryptographieprozessoren

25.11.2009Marco Kirschke19

Gliederung von MP Architekturen

� Homogene Multiprozessoren� Primär zur Leistungssteigerung� Gemeinsamer Zugriff auf Systemressourcen

� Heterogene MultiprozessorenHeterogene Multiprozessoren� Spezialprozessoren für verschiedene Anforderungen� Beispiel: DVD Player

25.11.2009Marco Kirschke20

Anordnung von Prozessoren in MPSoC

� Multiprozessor� Mehrere CPUs nutzen einen

gemeinsamen Speicher� Synchronisation notwendig

� Multicomputer� CPUs mit eigenem privaten Speicher� Nachrichtenaustausch über ein

Verbindungsnetzwerk� Network on Chips

25.11.2009Marco Kirschke21

Multiprozessor

� Verwendung eines gemeinsamen Speichers� UMA (Uniform Memory Access)

� Feste/Vorhersagbare Zugriffszeit auf Speicherreferenzen

� NUMA (NonUniform Memory Access)Speicherreferenzen mit unterschiedlichen Zugriffszeiten� Speicherreferenzen mit unterschiedlichen Zugriffszeiten

� COMA (Cache Only Memory Access)� Adressraum wird auf Cache-Zeilen aufgeteilt

� Auswirkung auf die Software Erstellung

25.11.2009Marco Kirschke22

Software für Multiprozessoren

� Vorteile für Software Entwickler� Load/Store Befehle für gemeinsam genutzte Speicher

� Festlegung eines Konsistenzmodells� Speicherzugriffe müssen koordiniert werdenSpeicherzugriffe müssen koordiniert werden� Scheduling Verfahren beachten

� Parallelen zu Threadbasierter Programmierung� DSM - Distributed Shared Memory

� Verwendung eines seitenbasierten virtuellen Adressraumes

� MMU erzeugt Seitenfehler � Seiten werden nachgeladen

� Anforderungen an das Betriebssystem

25.11.2009Marco Kirschke23

Multicomputer

� Prozessoren verwalten ihren privaten Speicher

� Nachrichtenaustausch über Verbindungsnetze� Einsatz verschiedener Topologien

� Stern, Baum, Ring, Gitter, Würfel, etc.

� Routing der Nachrichten nötig

� Aufwendigere Software Entwicklung� Verteilung der Informationen mit Send/Receive Methoden� Synchroner oder gepufferter Nachrichtenaustausch� MPI - Message Passing Interface

25.11.2009Marco Kirschke24

Auswahl eines Betriebssystems

� Auswahlkriterien für ein RTOS� Architektur des MPSoC� Unterstützung von Standard Bibliotheken� Ressourcenverbrauch� Verfügbarkeit / Integration von Treibern für Peripherie

� Xilinx und Altera FPGAs unterstützen� µC/OS II� BlueCat Embedded Linux / Wind River Linux� ThreadX

25.11.2009Marco Kirschke25

MPSoC mit 3Nios II ProzessorenNios II Prozessoren

terasic Development Board DE2-70

� Altera Cyclone II 2C70 FPGA

� Two 32-Mbyte SDRAM

� 8-Mbyte Flash Memory

� 50-MHz oscillator

� Entwicklungsboard

� 50-MHz oscillator

� 24-bit CD-quality audio CODEC

� VGA DAC ADV7123

� 2 TV Decoder (NTSC/PAL/SECAM)

� 10/100 Ethernet Controller with a connector

� USB Host/Slave Controller

� RS-232 transceiver

� PS/2 mouse/keyboard connector

� IrDA transceiver

25.11.2009Marco Kirschke27

Nios II Multiprocessor System

� „Hello World“ Beispiel mit 3 Nios II Prozessoren

� Zugriff auf On-Chip Memory über Hardware Mutex

� CPU1 behandelt Ausgabe über JTAG UART

25.11.2009Marco Kirschke28

SOPC Builder und Quartus II

25.11.2009Marco Kirschke29

SOPC Builder und Quartus II

25.11.2009Marco Kirschke30

SOPC Builder und Quartus II

25.11.2009Marco Kirschke31

Nios IDE zur Softwareerstellung

25.11.2009Marco Kirschke32

Nios IDE zur Softwareerstellung

25.11.2009Marco Kirschke33

Zusammenfassung

Zusammenfassung

� Implementierungsansätze für MPSoC

� High Performance Embedded Systems durch Verwendung von FPGAs

� Optimierung des Entwicklungsprozesses durch � Optimierung des Entwicklungsprozesses durch Integration von Software Komponenten

� Auslagerung der Anforderungen auf unterschiedliche Prozessoren

25.11.2009Marco Kirschke35

Vielen Dank für Ihre Vielen Dank für Ihre Aufmerksamkeit.

Literatur[1] Altera. 2007. Creating Multiprocessor Nios II Systems Altera:Tutorial. [Online] 5. Dezember 2007. [November

2009.] www.altera.com/literature/tt/tt_nios2_multiprocessor_tutorial.pdf

[2] Wolf, W. 2007. High Performance Embedded Computing. San Francisco, CA: Morgan Kaufmann, 2007. 0-12-369485-0

[3] Tanenbaum, A. . 2006. Computerarchitektur. München: Pearsum Studium, 2006. 3-8273-7151-1.

[4] Rauber, T. und Rünger, G. 2008.[4] Rauber, T. und Rünger, G. 2008. Multicore: Parallele Programmierung. Heidelberg: Springer, 2008. 3-540-73113-9.

[5] Jerraya, A. und Wolf, W. 2005. Multiprocessor Systems-on-Chips. San Francisco, CA: Morgan Kaufmann, 2005. 0-12-385251-0

[6] Ienne, P. und Leupers, R. 2007. Customizable Embedded Processors. San Francisco, CA: Morgan Kaufmann, 2007. 0-12-369526-0

Recommended