Anwendung der Methoden des Hardware/Software Codesigns am Beispiel eines MPEG1 Layer III Dekoders - PowerPoint PPT Presentation

1 / 29
About This Presentation
Title:

Anwendung der Methoden des Hardware/Software Codesigns am Beispiel eines MPEG1 Layer III Dekoders

Description:

Anwendung der Methoden des Hardware/Software Codesigns am Beispiel eines MPEG1 Layer III Dekoders Systempartitionierung, Softwareoptimierung, Simulation und Validierung – PowerPoint PPT presentation

Number of Views:124
Avg rating:3.0/5.0
Slides: 30
Provided by: tuda3
Category:

less

Transcript and Presenter's Notes

Title: Anwendung der Methoden des Hardware/Software Codesigns am Beispiel eines MPEG1 Layer III Dekoders


1
Anwendung der Methoden des Hardware/Software
Codesigns am Beispiel eines MPEG1 Layer III
Dekoders
  • Systempartitionierung, Softwareoptimierung,
    Simulation und Validierung

2
Überblick
  • 1. Funktionsweise MP3 Enkoder/Dekoder
  • 2. Architektur des ATMEL FPSLIC AT94K
  • Partitionierung und Reduktion des Rechenaufwands
  • Softwareentwicklung für den AVR
  • 4.1 MMC
  • 4.2 Huffman-Dekodierung
  • 4.3 Dequantisierung und Newton-Verfahren
  • Softwareentwicklung für den DSP
  • Erzielte Leistung

3
1. Funktionsweise des MP3 Enkoders
  • Polyphasenfilterbank mit 32 Subbändern
  • Fensterung (4 Typen) und MDCT
  • Quantisierung
  • FFT steuert Psychoakustisches Modell,
    Fensterwahl und Quantisierungsstufe
  • Huffman-Kodierung
  • Bitstream-Formatierung

4
Funktionsweise des MP3 Dekoders
  • Synchronisation auf Bitstream
  • Lesen der Sideinfo-, Scalefactor- und
    Header-Informationen
  • Huffman-Dekodierung
  • IMDCT und Fensterung
  • Polyphasensynthesefilter

5
Signalflußbild des Dekoders

6
2. Architektur des FPSLIC
  • 8 Bit AVR RISC Mikrocontroller, 18MHz
  • 36 kB on Chip Dual Access SRAM
  • Variabel verwendbar als Daten- und
    Programmspeicher
  • 40K Gatter FPGA, FreeRAM integriert
  • 8 Bit Bus zwischen AVR und FPGA
  • 16 Select und 16 Interruptleitungen zwischen AVR
    und FPGA

7
AVR Blockschaltbild
8
AVR-FPGA Interface
  • Flexibler Datenaustausch ist über SRAM und
    dedizierten
  • 8 Bit Bus möglich

9
Zusätzliche externe Hardware
  • MultiMediaCard-Interface
  • D/A-Wandler
  • Operationsverstärker

10
3. High Level Partitionierung
  • Ein-/Ausgabeinterface zu MMC und D/A-Wandler
    realisiert durch FPGA Hardware
  • Bitstreamverarbeitung effizient realisierbar auf
    AVR Mikrocontroller
  • Multiplikationen und Transformationen benötigen
    effiziente dedizierte Hardware

11
Abschätzen des Rechenaufwands
  • CPU Auslastung durch nicht optimierten
    ISO-Dekoder

12
Reduktion des Rechenaufwands
  • Problem
  • großer Wertebereich und Multiplikation großer
    Zahlen
  • Lösung
  • Benutzen eines kompakten Fließkommazahlenformats
    für Multiplikationen großer Wertebereiche in der
    Software

13
4. Implementierung
  • 4.1 MMC Interface
  • Wird im SPI Modus betrieben
  • Die MultiMediaCard liefert
  • Daten byteweise bitseriell in Blöcken von
    512 Byte
  • Puffer in zwei Hälften geteilt, eine enthält
    gültige Daten,
  • die andere wird von der Karte nachgeladen, daher
    keine lange Wartezeit beim Lesen der Daten
    seitens der Software
  • Daten können bitweise aus dem Puffer gelesen
    werden
  • Software Statemachine als Interruptroutine bildet
    das MMC-Protokoll ab

14
4.2 Huffman-Dekodierung
  • Huffman-Dekodierung liest einzelne Bits
  • - Befehlsstruktur des AVR Mikrocontrollers
    ermöglicht effiziente bitweise Verarbeitung des
    Bitstromes
  • Wegen Speicherlimitierung müssen die
    Huffman-Tabellen möglichst kompakt dargestellt
    werden.
  • Daher Traversierung eines Binären Suchbaumes
    implementiert (Tabellen belegen nur 6 kB).
  • Nachteil Alle Bits des Kodewortes müssen einzeln
    gelesen werden, dies ist relativ ineffizient.

15
Darstellung der Tabellen als C - Kode
  • Vorteile
  • Es wird kein Datenspeicher belegt
  • Dereferenzierungen bei der Interpretation der
    Tabellen entfallen
  • Der Programmspeicher kann eine Instruktion pro
    Takt liefern, dagegen benötigt der
    Datenspeicherzugriff zwei Takte
  • Beschleunigung der Dekodierung um 36 erreicht

16
Umwandeln der Tabellen in C - Kode
  • Automatische Synthese des C-Kodes aus der
    Textdarstellung der Tabellen im MP3
    Standarddokument durch Traversierung des
    Huffmanbaumes

17
4.3 Dequantisierung
  • Wertebereich der dekodierten Frequenzkoeffizienten
    i
  • 0..8207
  • Dequantisierungsformel
  • nimmt nur 182 verschiedene
    Werte an, dafür ist nur eine kleine Tabelle
    notwendig.
  • Berechnen der Potenz problematisch
  • Kleine Werte der Frequenzkoeffizienten
    statistisch häufig, große sind selten. Daher die
    ersten 100 Koeffizienten in Tabelle ablegen, die
    größeren berechnen durch Anwenden des
    Newton-Verfahrens.

18
Newton-Verfahren
  • Die Berechnung wird auf die Berechnung der
    Nullstelle zurückgeführt. Nachteil Iteration ist
    langsam!
  • Die Newton-Iterationsformel lautet
  • Die Iteration wird nach zwei
  • Schritten abgebrochen (Fehler lt 1 )
  • Die benutzten Interpolationspolynome zur
    Berechnung der Startwerte

19
5. Softwareentwicklung für DSP
  • Ausgehend von Verhaltensspezifikation und
    Befehlssatz wurde ein Modell des DSP erstellt.
  • Probleme
  • Wie Software für DSP erstellen ?
  • Wie Softwarefunktionalität validieren ?
  • Wie Interaktion mit AVR Software prüfen ?
  • Wie Änderungen in der Verhaltensspezifikation
    durch spätere Designänderungen des DSP
    berücksichtigen ?

20
DSP Datenpfad (vereinfacht)
  • Die genaue Beschreibung des Aufbaus erfolgt
    später...

21
DSP Assembler
  • Es wurde ein Assembler für den DSP Befehlssatz
    implementiert. Der Assembler prüft die Syntax der
    Menmonics, unterstützt Labels und Konstanten
    sowie einige Pseudo-Operationen und erzeugt den
    Bytekode. Dies vereinfacht eine fehlerfreie
    Assemblierung.
  • Der Assembler prüft zusätzlich Befehls- und
    Datenabhängigkeiten zwischen aufeinander
    folgenden Instruktionen, die durch die Pipeline
    des DSP entstehen, und gibt entsprechende
    Warnungen und Fehlermeldungen aus.
  • Reihenfolge der Befehle ist kritisch und bedarf
    der Prüfung und Optimierung im Verlauf der
    Softwareentwicklung.

22
DSP Simulator
  • Die Validierung des DSP Assemblerprogramms ohne
    reale Hardware ist schwierig.
  • Da die Funktionalität des DSP vollständig
    spezifiziert ist, wurde ein Simulator auf dem PC
    implementiert, der das Verhalten des DSP nach
    außen exakt nachbildet.
  • Simulator ermöglicht Test der Funktionalität,
    Debugging und Benchmarking der Software.
  • - Kommunikation mit AVR Software über serielle
    Schnittstelle ermöglicht Test der Funktion als
    Gesamtsystem.

23
Screenshot DSP Simulator
  • Der Simulator ermöglicht sowohl die Ausführung
    einzelner
  • Befehle, als auch die schnelle Simulation
    längerer Kode-
  • abschnitte. Registerwerte können manuell geändert
    werden.

24
Optimierte Berechnung der IMDCT und des
Polyphasenfilters
  • Triviale Berechnung der Transformationsgleichungen
    führt zu sehr hoher Anzahl an Operationen.
  • Effiziente Implementierung durch Dezimierung im
    Zeitbereich (Algorithmus von B.G. Lee) reduziert
    Anzahl auf weniger als ein Viertel

25
DSP Programmausführung Statistik

26
5. Erzielte Leistungen
  • Statistik über Ressourcenauslastung
  • DSP Assemblerprogramm 6604 Bytes Programm
  • AVR C Programm 22876 Bytes Programm,
  • 1190 Bytes Daten
  • - SRAM Auslastung 97
  • FPGA Auslastung 74
  • AVR Auslastung 73
  • DSP Auslastung 82

27
Simulationszeiten Vergleich
  • Simulationszeiten für die Berechnung der
    Dekodierung einer MP3 Datei mit 64 kbit Datenrate
    und 1 Minute Länge gemessen auf einem AMD Athlon
    600MHz Prozessor

Simulations Modell Simulations Zeit
ISO Modell 17 s
TL System C Modell 41 s
Instruktions Modell (DSP) 901 s
Zyklus genaues Modell
28
Mögliche Optimierungen
  • Bitweiser MMC-SpeicherzugriffDies erfordert
    eine komplexere MMC Controller Hardware und
    beschleunigt die Huffman-Dekodierung
  • Newton-Verfahren zur Dequantisierung für hohe
    Bitraten zu langsam, schnelleres
    Näherungsverfahren benötigt
  • DSP Lade- und Speicherbefehle als Vektorbefehle
    implementierenBeschleunigt das
    Einlesen/Speichern von Daten, da ein wiederholtes
    Lesen des Operationskodes nicht nötig ist.

29
Partitionierung des Speichers
  • Flexible Einteilung des SRAM Speichers in Daten
    und
  • Programmspeicher möglich

Programmspeicher Datenspeicher
10 k Worte 12 k Worte 14 k Worte 16 k Worte 16 kB 12 kB 8 kB 4 kB
Write a Comment
User Comments (0)
About PowerShow.com