Echtzeit Videoverarbeitung

Ähnliche Dokumente
Neue Prozessor-Architekturen für Desktop-PC

Mikroprozessoren. Aufbau und Funktionsweise. Christian Richter. Ausgewählte Themen der Multimediakommunikation SS 2005

Technische Informatik 1 Übung 8 Instruktionsparallelität (Rechenübung) Andreas Tretter 8./9. Dezember Bitte immer eine Reihe freilassen

Rechnerorganisation. (10,11) Informationskodierung (12,13,14) TECHNISCHE UNIVERSITÄT ILMENAU. IHS, H.- D. Wuttke `09

Instruktionen pro Takt

Arbeitsfolien - Teil 4 CISC und RISC

DIGITALE SCHALTUNGEN II

1. Übersicht zu den Prozessorfamilien 2 2. Grundlagen der Rechnerorganisation 3

Quiz. Gegeben sei ein 16KB Cache mit 32 Byte Blockgröße. Wie verteilen sich die Bits einer 32 Bit Adresse auf: Tag Index Byte Offset.

Inhalt. Prozessoren. Curriculum Manfred Wilfling. 28. November HTBLA Kaindorf. M. Wilfling (HTBLA Kaindorf) CPUs 28. November / 9

Hochschule Düsseldorf University of Applied Sciences HSD RISC &CISC

Implementierung: Direkt abgebildeter Cache

Mikroprozessoren Grundlagen AVR-Controller Input / Output (I/O) Interrupt Mathematische Operationen

Virtueller Speicher und Memory Management

Grundlagen der Informationsverarbeitung:

Am Beispiel der SHARC-DSPs Jan Kiene

Cell and Larrabee Microarchitecture

Cache Blöcke und Offsets

MikroController und Mikroprozessoren

früher: CISC ( Complex Instruction Set Computer )

Cache Grundlagen. Schreibender Cache Zugriff. SS 2012 Grundlagen der Rechnerarchitektur Speicher 22

Grundlagen der Rechnerarchitektur. Speicher

Name: Vorname: Matr.-Nr.: 4. a) RISC-Architekturen müssen zur Decodierung von Maschinenbefehlen stets ein mikroprogrammierbares Steuerwerk verwenden.

Mikrocontroller und Mikroprozessoren

Der Blackfin Prozessor und andere DSPs


Prozessorarchitektur. Sprungvorhersage. M. Schölzel

Teil 1: Prozessorstrukturen

Vorwort Teil 1: Grundlagen 1. 1 Einleitung Grundbegriffe Einheiten Geschichte Arten von Computern 8

Technische Informatik 2

Johann Wolfgang Goethe-Universität

4 Der Von-Neumann-Rechner als Grundkonzept für Rechnerstrukturen

RO-Tutorien 15 und 16

Tutorium Rechnerorganisation

ARM: Befehlssatz (Forts.)

ARM: Befehlssatz (Forts.)

Technische Informatik - Eine Einführung

Allgemeine Lösung mittels Hazard Detection Unit

Teil 2: Rechnerorganisation

Instruktionssatz-Architektur

Was ist die Performance Ratio?

Speicher. Speicher. Speicherhierarchie. Speicher. Interessante Zahlen:

Beispiele von Branch Delay Slot Schedules

Was ist Rechnerleistung

CISC ( Complex Instruction Set Computer ) mächtige Instruktionssätze zur Unterstützung von Hochsprachenkonstrukten

Die HAM. Die Hypothetische Akku-Maschine

CPU-Technik. Stand der Technik, Trends und Entwicklungen. Vortrag im Informatikseminar WS 2000/2001. (C) 2000 Heiko Panther

Das Prinzip an einem alltäglichen Beispiel

Technische Informatik 1 - HS 2016

Rechnerstrukturen. 6. System. Systemebene. Rechnerstrukturen Wintersemester 2002/03. (c) Peter Sturm, Universität Trier 1. Prozessor.

Mikroprozessor als universeller digitaler Baustein

Der von Neumann Computer

L3. Datenmanipulation

Vorlesung Rechnerarchitektur. Einführung

1. Übersicht zu den Prozessorfamilien 2 2. Grundlagen der Rechnerorganisation 3

Kap.2 Befehlsschnittstelle. Prozessoren, externe Sicht

Rechner Architektur. Martin Gülck

Rechnerorganisation. H.-D. Wuttke `

Pipelining. Die Pipelining Idee. Grundlagen der Rechnerarchitektur Prozessor 45

Philipp Grasl PROZESSOREN

N Bit Binärzahlen. Stelle: Binär-Digit:

Mikroprozessoren Grundlagen AVR-Controller Input / Output (I/O) Interrupt Mathematische Operationen

Aufbau und Funktionsweise eines Computers

9.1. Aufbau einer Befehlspipeline

moderne Prozessoren Jan Krüger

Mikroprozessortechnik Grundlagen 1

Teil VIII Von Neumann Rechner 1

Systeme 1: Architektur

Computer - Aufbau u. Funktionsweise

Teil 2: Speicherstrukturen

Grundlagen der Rechnerarchitektur

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

IT für Führungskräfte. Zentraleinheiten Gruppe 2 - CPU 1

Transkript:

Hardwareplattformen für Echtzeit Videoverarbeitung Herbert Thoma Seite 1

Gliederung Echtzeitanforderungen Prozessorarchitekturen Grundlagen Pipelining Parallele Befehlsausführung Systemkomponenten Speicher Cache DMA Beispiele Seite 2

Echtzeitanforderungen 1 Garantierte maximale Reaktionszeit auf externe Ereignisse Steuerungs und Regelungstechnik, z.b.: Endschalter bei Motorsteuerung Datenverarbeitung mit der Geschwindigkeit, mit der die Daten erzeugt bzw. verbraucht werden Digitale Signalverarbeitung Digitale Modulation Kanalcodierung Bildverarbeitung Effekte, Bildverbesserung Mustererkennung, Qualitätssicherung Codierung Seite 3

Echtzeitanforderungen 2 Datenrate Fernsehsignal ITU R BT601 720 x 576 pixel 25 fps 8 bit 4:2:2 Abtastung ca. 20 MByte pro Sekunde Beispiel: Filter 5 x 5 25 Multiplikationen pro pixel 24 Additionen pro pixel 49 arithmetische Operationen pro pixel ca. 520 Mio. arithmetische Operationen pro Sekunde Seite 4

Echtzeitanforderungen 3 Maßnamen um Echtzeitanforderungen zu erfüllen Schnelle Prozessoren Pipelining Parallele Funktionseinheiten Single Instruction Multiple Data (SIMD) Funktionseinheiten Schnelle Systemkomponenten Speicher Ein / Ausgabe Dedizierte Hardware MPEG 2 Decoder für DVD Player Schnelle Algorithmen Seite 5

Prozessoren 1 Prinzipschaltbild Steuerwerk Rechenwerk Register Programm Daten Speicher Seite 6

Prozessoren 2 Architekturen Von Neumann Gemeinsamer Speicher für Programm und Daten Sequentieller Zugriff auf Programmbefehle und Daten Harvard Getrennte Speicher für Programm und Daten, mehrere Datenspeicherbereiche Gleichzeitiger Zugriff auf Programmbefehle und Daten Typisch für Digitale Signalprozessoren (DSP) Kombinierte Architekturen Extern (off chip) gemeinsamer Speicher für Programm und Daten Intern (on chip) getrennte Speicher (Caches) für Programm und Daten Übliches Konzept bei aktuellen Prozessoren Seite 7

Prozessoren 3 Befehlssätze (Instruction Set Architecture, ISA) Complex Instruction Set Computer (CISC) Komplexe Operationen pro Befehl Variable Befehlsgröße Direkte Speicherreferenzen in Befehlen Komplexe Adressierungsmodi Große Ausführungszeit pro Befehl Reduced Instruction Set Computer (RISC) Einfache Basisoperationen pro Befehl Feste Befehlsgröße Load/Store Architektur Einfache Adressierungsmodi Kleine Ausführungszeit pro Befehl CISC ADD r1, *(r2 + 2 * r3 + 15), r4 RISC MUL r3, 2, r5 ADD r2, r5, r5 ADD r5, 15, r5 LOAD *r5, r4 ADD r1, r4, r4 Seite 8

Pipelining 1 Schritte beim Ausführen eines Befehls Befehl holen (Fetch) Befehl decodieren (Decode) Operanden holen (Operand fetch) Befehl ausführen (Execute) Ergebnis speichern (Writeback) Seite 9

Pipelining 2 Überlappende Ausführung der Befehle Befehl 1 Fetch Decode Operand Execute Write Befehl 2 Fetch Decode Operand Execute Write Befehl 3 Fetch Decode Operand Execute Write Befehl 4 Fetch Decode Operand Execute Write Befehl 5 Fetch Decode Operand Execute Write... Zeit Seite 10

Pipelining 3 Probleme Unterschiedliche Ausführungszeit verschiedener Befehle Komplexe Befehle können mehrere Execute Stufen benötigen Benötigt ein nachfolgender Befehl das Ergebnis, muß die Pipeline angehalten werden (Pipeline Stall) Variable Befehlslänge Befehlslänge wird erst in der Decode Stufe festgestellt Bei langem Befehl muß die Pipeline angehalten werden, um den Rest des Befehls zu holen Direkte Speicherreferenzen in Befehlen Zusätzliche Adressberechnungen Operand Fetch Stufe kann durch Speicherzugriff lange dauern Bedingte Verzweigungen Sprungziel wird erst in der Execute Stufe ermittelt Schon geholte und decodierte Befehle müssen eventuell verworfen werden Pipelinelänge Lange Pipelines erlauben hohe Taktfrequenzen Lange Pipelines verlieren viel Effektivität bei bedingten Sprüngen Seite 11

Pipelining 4 Bedingte Verzweigungen Verzögerte Sprünge (Branch Delay Slots) Schon in der Pipeline befindliche Befehle werden immer ausgeführt Bedingte Befehlsausführung (Conditional Execution, Predication) Befehle werden abhängig von einer Bedingung ausgeführt Sprungvorhersage (Branch Prediction) Angabe des wahrscheinlichen Sprungziels im Befehl (Static Branch Prediction) Prozessor führt eine Liste der Sprungziele von Sprungbefehlen, die schon einmal ausgeführt wurden, besonders effektiv bei Schleifen Spekulative Befehlsausführung (Speculative Execution) Benötigt parallele Funktionseinheiten Seite 12

Pipelining 5 Beispiel Branch Delay Slot & Conditional Execution TMS320C6x Assembler Addition mit Clipping, vereinfacht ; ) MV 64, A2 Schleifenzähler MV 240, A3 Obere Clippinggrenze MV 16, A4 Untere Clippinggrenze Schleife: LDBU *A10++, A5 Lade Wert 1 LDBU *A11++, A6 Lade Wert 2 ADD A5, A6, A7 A7 = A5 + A6 [A2] SUB A2, 1, A2 Falls (A2!= 0) erniedrige Schleifenzähler [A2] B Schleife Falls (A2!= 0) springe zu Schleife, 5 delay slots GMPGT A7, A3, A1 Falls (A7 > A3) A1 = TRUE [A1] MV A3, A7 Falls (A1 == TRUE) A7 = 240 GMPLT A7, A4, A1 Falls (A7 < A4) A1 = TRUE [A1] MV A4, A7 Falls (A1 == TRUE) A7 = 16 STB A7, *A12++ Speichere Ergebnis Sprung findet statt B Adresse Rücksprung NOP 5 Keine sinnvolle Aktion möglich Seite 13

Parallele Befehlsausführung Eine optimale Pipeline kann einen Befehl pro Takt ausführen Voneinander unabhänige Befehle können parallel abgearbeitet werden mul r1, r2, r3 mul r4, r5, r6 add r7, r8, r9 mul r10, r11, r12 add r13, r14, r15 mul r1, r2, r3 mul r4, r5, r6 add r7, r8, r9 mul r10, r11, r12 add r13, r14, r15 Bezeichnung: multiple instruction issue Prozessor Techniken Superskalare Prozessoren Very Long Instruction Word (VLIW) Prozessoren Seite 14

Superskalare Prozessoren Ermittlung der Parallelisierbarkeit von Befehlen durch den Prozessor zur Laufzeit Keine direkte Kontrolle der parallelen Befehlsausführung durch den Programmierer oder Compiler Techniken Speculative Execution Out of order Execution Register Renaming Prozessoren Pentium, P Pro, P II, P III Alpha PowerPC SPARC II, SPARC III Seite 15

Superskalare Pipeline Fetch Decode Instruction Reorder Buffer Execute Completion Buffer Retire Seite 16

Very Long Instruction Word (VLIW) Ermittlung der Parallelisierbarkeit von Befehlen bei der Programmentwicklung Direkte Kontrolle der parallelen Befehlsausführung durch den Programmierer oder Compiler Verbreitet bei Digitalen Signalprozessoren ADI SHARC: 48 bit Befehlslänge TI C8x: 64 bit Befehlslänge TI C6x: 32 256 bit Befehlslänge Universalprozessoren Intel IA64: 128 bit Befehlslänge, Bezeichnung: EPIC Explicitly Parallel Instruction Computing Seite 17

Single Instruction Multiple Data (SIMD) 1 Aufteilung eines Registers in mehrere Untereinheiten Parallele Ausführung von Befehlen auf den Untereinheiten Überlaufbehandlung Modulo: 240 + 17 = 1 Clipping: 240 + 17 = 255 32 32 16 16 16 16 8 8 8 8 8 8 8 8 + 32 + + 16 16 + + + + 8 8 8 8 Seite 18

Single Instruction Multiple Data (SIMD) 2 x86 MMX Integer 64 bit Register 3DNow! Floating Point 64 bit Register ISSE Internet SIMD Streaming Extensions Floating Point 128 bit Register PowerPC AltiVec Integer & Floating Point 128 bit Register Sun SPARC VIS Visual Instruction Set Integer 64 bit Register Seite 19

Speicher 1 Kenngrößen Größe (Mbyte) Bandbreite (Mbyte / s) Latenzzeit (ns) Technologie Dynamisches RAM (DRAM) Speicherzelle besteht aus 1 Transistor und 1 Kondensator Höchste Integrationsdichte / Speichergröße Mäßige Bandbreite Hohe Latenzzeit Benötigt Refresh Statisches RAM (SRAM) Speicherzelle besteht aus 4 6 Transistoren Mäßige Integrationsdichte Hohe Bandbreite Niedrige Latenzzeit Seite 20

Speicher 2 DRAM Typ Taktfrequenz Busbreite Bandbreite Latenzzeit [MHz] [bit] [MByte/s] [ns] SDRAM 100 100 64 800 90 SDRAM 133 133 64 1064 75 DDR SDRAM 200 100 DDR 64 1600 70 DDR SDRAM 266 133 DDR 64 2128 60 RAMBUS 800 400 DDR 16 1600 70 Achtung: Die Werte für die Bandbreite gelten nur bei Zugriffen auf aufeinanderfolgende Speicherzellen! Seite 21

Cache 1 Problem: Prozessortaktfrequenz >> Speichertaktfrequenz Prozessortaktfrequenz 1 GHz 128 bit Daten pro Takt (zwei 32 bit Befehle + ein 64 bit Datenwort) 16 GByte / s Lösung: Schnelle Zwischenspeicher Funktionsprinzip: Lokalität von Speicherzugriffen Örtliche Lokalität Zeitliche Lokalität Mehrstufige Cache Systeme Seite 22

Cache 2 Organisation Direct Mapped Fully Associative Set Associative Ersetzung von Cache Inhalten Round Robin Least Recently Used Seite 23

Cache 3 Schlechte Lokalitätseigenschaften von Algorithmen zur Videoverarbeitung Sequentieller Zugriff auf große Datenmengen Zufällige Zugriffsreihenfolge auf relative kleine Datenmengen Nur einmal benötigte Daten werden zwischengespeichert Oft benötigte Daten werden aus dem Cache verdrängt (Trashing) Lösungsmöglichkeiten Umgehung des Caches (Cache Bypass) Einfrieren des Cache Inhalts (Cache Locking) Lokale Speicherbänke Verwaltung unter Softwarekontrolle Typisch für DSPs Seite 24

Virtueller Speicher Geschützter Adressraum für jeden Prozess Paging zur Speicherverwaltung Swapping zur Auslagerung von Speicherbereichen auf Massenspeicher effektive Adresse Segment virtuelle Adresse Page Table physikalische Adresse Cache für Zuordnung von virtuellen zu physikalischen Adressen (Translation Lookaside Buffer, TLB) Seite 25

Direct Memory Access (DMA) Datentransfer ohne Belastung des Prozessors Speicher Speicher Speicher Ein / Ausgabegeräte Anwendungen Massenspeicherzugriffe Kommunikationsschnittstellen Ein / Ausgabe Video Audio Datenaustausch zwischen unterschiedlich schnellen Speicherbereichen Komplexe DMA Operationen Mehrdimensionale Transfers Umsortieren Verkettung von DMA Transfers (DMA Chaining) Seite 26

Beispiel Superskalarer Prozessor PowerPC MPC7410 1 Maximal 2 Befehle können gleichzeitg starten bzw. enden 8 Execute Einheiten Branch Processing Unit 2 Integer Units Floating Point Unit 2 Vector Units (SIMD, AltiVec) Load Store Unit System Register Unit 3 Registerbänke 32 32bit Integer Register 32 64bit Floating Point Register 32 128bit Vector Register Seite 27

Beispiel Superskalarer Prozessor PowerPC MPC7410 2 On Chip Level 1 Cache 32 kbyte Instruction Cache, 8 way set associative 32 kbyte Data Cache, 8 way set associative Controller für externen Level 2 Cache Memory Management Unit (MMU) Separate MMUs für Code und Daten TLBs mit je 128 Einträgen Weitere periphere Einheiten Timer Takt PLL Power Management Seite 28

Beispiel Superskalarer Prozessor PowerPC MPC7410 3 Seite 29

Beispiel Superskalarer Prozessor PowerPC MPC7410 4 Pipeline Seite 30

Beispiel VLIW Prozessor TMS320C6201 1 8 parallele Funktionseinheiten 2.L Units Addition, Subtraktion Vergleich Logische Operationen 2.S Units Addition, Subtraktion Logische Operationen Schiebeoperationen Verzweigungen 2.M Units Multiplikation 2.D Units Addition, Subtraktion Laden, Speichern 2 Registerbänke 16 Register pro Bank 32 bit Datenbreite Seite 31

Beispiel VLIW Prozessor TMS320C6201 2 On Chip Speicher 64 kbyte Programmspeicher Lokaler Speicher oder Cache 64 kbyte Datenspeicher 2 Zugriffe gleichzeitig möglich (dual ported) External Memory Interface (EMIF) Direkte Anschlußmöglichkeit (glueless) für verschiedene Speichertypen DMA Controller Serielle Schnittstellen Timer Hostport Seite 32

Beispiel VLIW Prozessor TMS320C6201 3 Seite 33

Beispiel Video Encoder System 1 H.263 Echtzeit Encoder Maximale Bildgröße: CIF (352 x 288) 12,5 fps bei CIF (mehr bei kleineren Bildgrößen) Bitrate: 10 kbps bis 1 Mbps Funktionsblöcke Video Eingang FBAS, Y/C PAL, NTSC, SECAM Größenskalierung 2 DSPs TMS320C6201 200MHz DSP 0 Vorverarbeitung Bewgungsschätzung DSP 1 Prädiktion Transformation, Quantisierung Huffman Codierung Seite 34

Beispiel Video Encoder System 2 Seite 35

Beispiel Video Encoder System 3 Seite 36

Zusammenfassung Hardwareplattformen für Echtzeitvideoverarbeitung Prozessoren Systemkomponenten Systeme Hardware als Grundlage zur Videoverarbeitung Software: Nächste Vorlesungen Seite 37