+ All Categories
Home > Documents > Implementierungsansätze für ein FPGA basiertes Multiprozessor …ubicomp/... · 2009-11-25 ·...

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

Date post: 04-Aug-2020
Category:
Upload: others
View: 0 times
Download: 0 times
Share this document with a friend
37
Implementierungsansätze für ein FPGA basiertes Multiprozessor System System Marco Kirschke INF-M1 – Anwendung 1 - Wintersemester 2009/2010 25. November 2009
Transcript
Page 1: Implementierungsansätze für ein FPGA basiertes Multiprozessor …ubicomp/... · 2009-11-25 · NIOS IDE Soft Processor Cores PPC 440, PPC405, MicroBlaze C68000, ARM Cortex, NIOS2.

Implementierungsansätze für ein FPGA basiertes Multiprozessor

SystemSystem

Marco Kirschke

INF-M1 – Anwendung 1 - Wintersemester 2009/2010

25. November 2009

Page 2: Implementierungsansätze für ein FPGA basiertes Multiprozessor …ubicomp/... · 2009-11-25 · NIOS IDE Soft Processor Cores PPC 440, PPC405, MicroBlaze C68000, ARM Cortex, NIOS2.

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

Page 3: Implementierungsansätze für ein FPGA basiertes Multiprozessor …ubicomp/... · 2009-11-25 · NIOS IDE Soft Processor Cores PPC 440, PPC405, MicroBlaze C68000, ARM Cortex, NIOS2.

Motivation

Page 4: Implementierungsansätze für ein FPGA basiertes Multiprozessor …ubicomp/... · 2009-11-25 · NIOS IDE Soft Processor Cores PPC 440, PPC405, MicroBlaze C68000, ARM Cortex, NIOS2.

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

Page 5: Implementierungsansätze für ein FPGA basiertes Multiprozessor …ubicomp/... · 2009-11-25 · NIOS IDE Soft Processor Cores PPC 440, PPC405, MicroBlaze C68000, ARM Cortex, NIOS2.

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

Page 6: Implementierungsansätze für ein FPGA basiertes Multiprozessor …ubicomp/... · 2009-11-25 · NIOS IDE Soft Processor Cores PPC 440, PPC405, MicroBlaze C68000, ARM Cortex, NIOS2.

� Entwicklung von Embedded Systems� Einschränkende Randbedingungen

Zielsetzung

� Einsatz von FPGAs

� Flexible Plattformen

25.11.2009Marco Kirschke6

� Einsatz von FPGAs

Page 7: Implementierungsansätze für ein FPGA basiertes Multiprozessor …ubicomp/... · 2009-11-25 · NIOS IDE Soft Processor Cores PPC 440, PPC405, MicroBlaze C68000, ARM Cortex, NIOS2.

� Entwicklung von Embedded Systems� Einschränkende Randbedingungen

Zielsetzung

� Einsatz von FPGAs

� Flexible Plattformen

25.11.2009Marco Kirschke7

� Einsatz von FPGAs

� Optimierung des Entwicklungsprozesses

Page 8: Implementierungsansätze für ein FPGA basiertes Multiprozessor …ubicomp/... · 2009-11-25 · NIOS IDE Soft Processor Cores PPC 440, PPC405, MicroBlaze C68000, ARM Cortex, NIOS2.

� 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

Page 9: Implementierungsansätze für ein FPGA basiertes Multiprozessor …ubicomp/... · 2009-11-25 · NIOS IDE Soft Processor Cores PPC 440, PPC405, MicroBlaze C68000, ARM Cortex, NIOS2.

FPGA-basedEmbedded SystemsEmbedded Systems

Page 10: Implementierungsansätze für ein FPGA basiertes Multiprozessor …ubicomp/... · 2009-11-25 · NIOS IDE Soft Processor Cores PPC 440, PPC405, MicroBlaze C68000, ARM Cortex, NIOS2.

Einsatzgebiete

Automotive Wireline & WirelessSolutions

25.11.2009Marco Kirschke10

Data Storage &Processing

Consumer ElectronicsAerospace &

Military

Page 11: Implementierungsansätze für ein FPGA basiertes Multiprozessor …ubicomp/... · 2009-11-25 · NIOS IDE Soft Processor Cores PPC 440, PPC405, MicroBlaze C68000, ARM Cortex, NIOS2.

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

Page 12: Implementierungsansätze für ein FPGA basiertes Multiprozessor …ubicomp/... · 2009-11-25 · NIOS IDE Soft Processor Cores PPC 440, PPC405, MicroBlaze C68000, ARM Cortex, NIOS2.

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

Page 13: Implementierungsansätze für ein FPGA basiertes Multiprozessor …ubicomp/... · 2009-11-25 · NIOS 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

Page 14: Implementierungsansätze für ein FPGA basiertes Multiprozessor …ubicomp/... · 2009-11-25 · NIOS IDE Soft Processor Cores PPC 440, PPC405, MicroBlaze C68000, ARM Cortex, NIOS2.

EntwurfsübersichtMultiprocessor System on ChipMultiprocessor System on Chip

Page 15: Implementierungsansätze für ein FPGA basiertes Multiprozessor …ubicomp/... · 2009-11-25 · NIOS IDE Soft Processor Cores PPC 440, PPC405, MicroBlaze C68000, ARM Cortex, NIOS2.

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

Page 16: Implementierungsansätze für ein FPGA basiertes Multiprozessor …ubicomp/... · 2009-11-25 · NIOS IDE Soft Processor Cores PPC 440, PPC405, MicroBlaze C68000, ARM Cortex, NIOS2.

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

Page 17: Implementierungsansätze für ein FPGA basiertes Multiprozessor …ubicomp/... · 2009-11-25 · NIOS IDE Soft Processor Cores PPC 440, PPC405, MicroBlaze C68000, ARM Cortex, NIOS2.

� 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

Page 18: Implementierungsansätze für ein FPGA basiertes Multiprozessor …ubicomp/... · 2009-11-25 · NIOS IDE Soft Processor Cores PPC 440, PPC405, MicroBlaze C68000, ARM Cortex, NIOS2.

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

Page 19: Implementierungsansätze für ein FPGA basiertes Multiprozessor …ubicomp/... · 2009-11-25 · NIOS IDE Soft Processor Cores PPC 440, PPC405, MicroBlaze C68000, ARM Cortex, NIOS2.

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

Page 20: Implementierungsansätze für ein FPGA basiertes Multiprozessor …ubicomp/... · 2009-11-25 · NIOS IDE Soft Processor Cores PPC 440, PPC405, MicroBlaze C68000, ARM Cortex, NIOS2.

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

Page 21: Implementierungsansätze für ein FPGA basiertes Multiprozessor …ubicomp/... · 2009-11-25 · NIOS IDE Soft Processor Cores PPC 440, PPC405, MicroBlaze C68000, ARM Cortex, NIOS2.

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

Page 22: Implementierungsansätze für ein FPGA basiertes Multiprozessor …ubicomp/... · 2009-11-25 · NIOS IDE Soft Processor Cores PPC 440, PPC405, MicroBlaze C68000, ARM Cortex, NIOS2.

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

Page 23: Implementierungsansätze für ein FPGA basiertes Multiprozessor …ubicomp/... · 2009-11-25 · NIOS IDE Soft Processor Cores PPC 440, PPC405, MicroBlaze C68000, ARM Cortex, NIOS2.

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

Page 24: Implementierungsansätze für ein FPGA basiertes Multiprozessor …ubicomp/... · 2009-11-25 · NIOS IDE Soft Processor Cores PPC 440, PPC405, MicroBlaze C68000, ARM Cortex, NIOS2.

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

Page 25: Implementierungsansätze für ein FPGA basiertes Multiprozessor …ubicomp/... · 2009-11-25 · NIOS IDE Soft Processor Cores PPC 440, PPC405, MicroBlaze C68000, ARM Cortex, NIOS2.

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

Page 26: Implementierungsansätze für ein FPGA basiertes Multiprozessor …ubicomp/... · 2009-11-25 · NIOS IDE Soft Processor Cores PPC 440, PPC405, MicroBlaze C68000, ARM Cortex, NIOS2.

MPSoC mit 3Nios II ProzessorenNios II Prozessoren

Page 27: Implementierungsansätze für ein FPGA basiertes Multiprozessor …ubicomp/... · 2009-11-25 · NIOS IDE Soft Processor Cores PPC 440, PPC405, MicroBlaze C68000, ARM Cortex, NIOS2.

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

Page 28: Implementierungsansätze für ein FPGA basiertes Multiprozessor …ubicomp/... · 2009-11-25 · NIOS IDE Soft Processor Cores PPC 440, PPC405, MicroBlaze C68000, ARM Cortex, NIOS2.

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

Page 29: Implementierungsansätze für ein FPGA basiertes Multiprozessor …ubicomp/... · 2009-11-25 · NIOS IDE Soft Processor Cores PPC 440, PPC405, MicroBlaze C68000, ARM Cortex, NIOS2.

SOPC Builder und Quartus II

25.11.2009Marco Kirschke29

Page 30: Implementierungsansätze für ein FPGA basiertes Multiprozessor …ubicomp/... · 2009-11-25 · NIOS IDE Soft Processor Cores PPC 440, PPC405, MicroBlaze C68000, ARM Cortex, NIOS2.

SOPC Builder und Quartus II

25.11.2009Marco Kirschke30

Page 31: Implementierungsansätze für ein FPGA basiertes Multiprozessor …ubicomp/... · 2009-11-25 · NIOS IDE Soft Processor Cores PPC 440, PPC405, MicroBlaze C68000, ARM Cortex, NIOS2.

SOPC Builder und Quartus II

25.11.2009Marco Kirschke31

Page 32: Implementierungsansätze für ein FPGA basiertes Multiprozessor …ubicomp/... · 2009-11-25 · NIOS IDE Soft Processor Cores PPC 440, PPC405, MicroBlaze C68000, ARM Cortex, NIOS2.

Nios IDE zur Softwareerstellung

25.11.2009Marco Kirschke32

Page 33: Implementierungsansätze für ein FPGA basiertes Multiprozessor …ubicomp/... · 2009-11-25 · NIOS IDE Soft Processor Cores PPC 440, PPC405, MicroBlaze C68000, ARM Cortex, NIOS2.

Nios IDE zur Softwareerstellung

25.11.2009Marco Kirschke33

Page 34: Implementierungsansätze für ein FPGA basiertes Multiprozessor …ubicomp/... · 2009-11-25 · NIOS IDE Soft Processor Cores PPC 440, PPC405, MicroBlaze C68000, ARM Cortex, NIOS2.

Zusammenfassung

Page 35: Implementierungsansätze für ein FPGA basiertes Multiprozessor …ubicomp/... · 2009-11-25 · NIOS IDE Soft Processor Cores PPC 440, PPC405, MicroBlaze C68000, ARM Cortex, NIOS2.

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

Page 36: Implementierungsansätze für ein FPGA basiertes Multiprozessor …ubicomp/... · 2009-11-25 · NIOS IDE Soft Processor Cores PPC 440, PPC405, MicroBlaze C68000, ARM Cortex, NIOS2.

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

Page 37: Implementierungsansätze für ein FPGA basiertes Multiprozessor …ubicomp/... · 2009-11-25 · NIOS IDE Soft Processor Cores PPC 440, PPC405, MicroBlaze C68000, ARM Cortex, NIOS2.

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