21

Click here to load reader

Vortrag über Signalprozessoren

  • Upload
    ro

  • View
    68

  • Download
    0

Embed Size (px)

DESCRIPTION

Ansprechender Vortrag mit Sven Semmelrodt, wurde gut aufgenommen.

Citation preview

Page 1: Vortrag über Signalprozessoren

Seminarvortrag26. Juni 1998

Universität - Gesamthochschule Kassel

Aufbau und Anwendung vonDigital Signal Prozessoren

vonSven Semmelrodt

Roger Wolf

Page 2: Vortrag über Signalprozessoren

INHALTSVERZEICHNIS

Gängige µProzessoren besitzen eine ‘von Neumann’ Architektur

Daten und Programmcode liegen in einem gemeinsam adressierbaren Speicherbereich

einfache Hardware, sehr flexibel PC

Programm und Daten werden sequentiell gelesen sehr langsam

Signal Prozessoren besitzen eine ‘Harvard’ Architektur

Daten und Programmcode liegen in unterschiedlich adressierbaren Speicherbereichen

aufwendige Hardware

ermöglicht sehr effiziente Bearbeitung von Daten

DSP’s erweiterte ‘Harvard Architektur (1 Programm, 2 Daten Bereiche)

Abbildung 1-1: Vereinfachtes Blockschaltbild des DSP 56002

Folie 2

Page 3: Vortrag über Signalprozessoren

Zahlenformate der Signalverarbeitung

Festkomma Darstellung

‘geringere’ Genauigkeit als Fließkommazahlen

Zahlenbereich von -1 X 1 Skalieren wird notwendig

kein Überlauf bei der Multiplikation möglich (Ausnahme: -1 -1 = 1)

einfache Rechenwerke

Fließkomma Darstellung

hohe Genauigkeit

Zahlenbereich: Mantisse 2 Exponent

aufwendige Rechenwerke (getrennte Berechnung von Exponent und

Mantisse)

aufwendige Überlaufs- und Rundungslogik wird notwendig

Bit 23 22 21 ... 2 1 0

Wert 0 1 1 ... 0 1 0

Wichtung -20 2-1 2-2 ... 2-21 2-22 2-23

Abbildung 1-2: 24 Bit Festkommaformat

Bit 31 ... 24 23 ... 0

Bedeutung Exponent +/- Mantisse

Abbildung 1-3: 32 Bit Fließkommaformat (TI)

Folie 4

Page 4: Vortrag über Signalprozessoren

Zahlenformate der Signalverarbeitung

Abbildung 1-4: 24 Bit Festkomma Rechenwerk (ALU)

Folie 4

Page 5: Vortrag über Signalprozessoren

Adreßwerke von DSP’s

Spezielle Eigenschaften des Adreßwerkes

Modulo Adressierung (Implementierung von Ringspeichern)

Bit Reversed Addressing (Implementierung von FFT Algorithmen)

Abbildung 1-5: Verzögerung durch umspeichern von Abtastwerten

4094

4095

0

1

23

4.

.

.

.

.

.

.

.

.. .

.

.

.

.

.

Ringpufferzeiger R0 A enthalte den neuen Abtastwert

Bearbeitungsschritte:

1: B = *(R0 2: *(R0) = A 3: R0 + 1

4: if (R0 == 4096) then R0 = 0

B enthält den 4096-fach verzögerten Abtastwert

Abbildung 1-6: Verzögerung mit Hilfe von Ringspeichern

Folie 6

Page 6: Vortrag über Signalprozessoren

Adreßwerke von DSP’s

Adresse Speicherinhalt

$00 x [ 0 ]

$01 x [ 1 ]

$02 x [ 2 ]

$03 x [ 3 ]

$04 x [ 4 ]

$05 x [ 5 ]

$06 x [ 6 ]

$07 x [ 7 ]

$08 ...

... ...

Abbildung 1-7: Speicherkonfiguration für FFT-Algorithmus

Bearbeitungsschritte 1 2 3 4 5 6 7 8

Benötigte Abtastwerte x [0] x [4] x [2] x [6] x [1] x [5] x [3] x [7]

Zugehörige Adressen $00 $04 $02 $06 $01 $05 $03 $07

Binäre Adressen 000 100 010 110 001 101 011 111

Binäre Bit Rev. Addr. 000 001 010 011 100 101 110 111

Bit Reversed Addr. $00 $01 $02 $03 $04 $05 $06 $07

Abbildung 1-8: Prinzipschaubild der Bitverdrehten Adressierung

Operationen für die Bitverdrehte Addressierung

Adresse = $06

Bits drehen $06 = 110 011 = $03

Adresse inkrementieren $03 $04

Bits drehen $04 = 100 001 = $01

Adresse = $01

Folie 7

Page 7: Vortrag über Signalprozessoren

Piplinestruktur und Befehlssatz

Bearbeitungsphasen während der Befehlsausführung :

Programmwort aus Programmspeicher lesen (Fetch)

Programmwort decodieren (Decode)

Operanden aus Programmspeicher lesen (Read)

Befehl ausführen (Execute)

Zyklus Fetch Decode Read Execute

m - 3 Befehl ‘1’ - - -

m - 2 Befehl ‘2’ Befehl ‘1’ - -

m - 1 Befehl ‘3’ Befehl ‘2’ Befehl ‘1’ -

m Befehl ‘4’ Befehl ‘3’ Befehl ‘2’ Befehl ‘1’

m + 1 ... Befehl ‘4’ Befehl ‘3’ Befehl ‘2’

m + 2 ... ... Befehl ‘4’ Befehl ‘3’

m + 3 ... ... ... Befehl ‘4’

Abbildung 1-9: Befehlsverarbeitung mit einer 4 stufigen Pipelinestruktur

Beispiel 1: Beispiel 2:

... ...

BR XYZ BRD XYZ

ADD ... OR ...

MPY ... ADD ...

... SUB ...

ADD ...

XYZ: OR ... MPY ...

ADD ... ...

SUB ...

ADD ... XYZ: ADD ...

... ...

Abbildung 1-10: Konfliktbehebung durch verzögerte Programmverzweigung

Folie 8

Page 8: Vortrag über Signalprozessoren

Piplinestruktur und Befehlssatz

Zykl. F. D. R. E. Zykl. F. D. R. E.

m - 3 BR - - - m - 3 BRD - - -

m - 2 MPY BR - - m - 2 OR BRD - -

m - 1 - - BR - m - 1 ADD OR BRD -

m - - - BR m SUB ADD OR BRD

m + 1 OR - - - m + 1 ADD SUB ADD OR

m + 2 ADD OR - - m + 2 ... ... ... ...

m + 3 SUB ADD OR - m + 3 ... ... ... ...

m + 4 ADD SUB ADD OR m + 4 ... ... ... ...

m + 5 ... ... ... ... m + 5 ... ... ... ...

Abbildung 1-11: Pipline mit und ohne Sprungkonflikt

Spezielle Befehle

Repeat Single Instruction

ermöglicht ‘Zero Overhead Loops’ durch spezielle Schleifen-register

Wiederholt n-mal den folgenden Befehl (z. B. Speicher löschen)

kein Softwareaufwand zur Implementierung einer Programm-schleife (Zähler inkrementieren, Prüfen der Abbruchbedingung)

einmalige Initialisierung (4 Zyklen wegen Piplinestruktur)

Programm läuft so schnell, als würde der Befehl n-mal im Source-Code auftauchen

Repeat Instruction Block

Wiederholt n-mal den folgenden Befehlsblock

siehe oben

Automatic Addressincrement / decrement

ermöglicht automatisches weitersetzen von Datenzeigern

Inkrement bzw. Dekrement von Zeigern

Multiply and Add

Parallele Multiplikation und Addition

Folie 9

Page 9: Vortrag über Signalprozessoren

Peripherie von Signalprozessoren

Standardausstattung

Interrupt Controller

Mindestens eine serielle oder parallele Schnittstelle

On-Chip RAM (256 - 1k Worte pro RAM Block)

Boot ROM

Timer/Counter

I/O Ports

Externes Bus Interface

Zusatzperipherie je nach Hersteller und Typ

DMA Controller

n-fach Serielles Interface

n-fach Paralleles Interface

Host bzw. Debug Interface

Clock Generator mit PLL

Befehls Cache

ROM Tabellen

Alle peripheren Einheiten sind über den Interrupt Controller mit der ‘CPU’ und - wenn vorhanden - mit dem DMA Controller verbunden, um gezielt in den Programmablauf eingreifen zu können.

Folie 10

Page 10: Vortrag über Signalprozessoren

Anwendungsbeispiel ‘FIR-Filter’

Abbildung 1-12: Filterstruktur eines N-stufigen FIR-Filters

Differenzengleichung:

Übertragungsfunktion bzw. Impulsantwort:

X-Speicher Y-Speicher

0 x [n] R0 0 a0 R1

1 x [n+1] 1 a1

2 x [n+2] 2 a2

... ... ... ...

N - 2 x [n + N - 2] N - 2 aN-2

N - 1 x [n + N - 1] N - 1 aN-1

Abbildung 1-13: Speicherbelegung für die FIR-Filter Berechnung

Folie 11

Page 11: Vortrag über Signalprozessoren

Anwendungsbeispiel ‘FIR-Filter’

HAUPT_PROG{ < Initialisierung des Prozessors und der Peripherie > < Initialisierung des Eingangs- und Koeffizientenspeicher als Ringpuffer > while (1) { < Auf nächsten Abtastwert warten > < Abtastwert empfangen und im Eingangspuffer eintragen > < FIR Funktion aufrufen > < Berechneten Ausgangswert ausgeben > }}

FIR (Version 1){ B = 0 for k = 0 to N ;N-fach Schleife (6 Zykl. / Durchlauf) {

X0 = *(R0) ;Abtastwert laden (1 Zyklus)R0 + 1 ;Zeiger weitersetzen (1 Zyklus)Y0 = *(R1) ;Koeffizient laden (1 Zyklus)R1 + 1 ;Zeiger weitersetzen (1 Zyklus)A = X0 Y0 ;x[n-k] * ak (2 Zyklen)B = A + B ;aufsummieren (1 Zyklus)

} return (B) }

FIR (Version 2){ A = 0 X0 = *(R0 ++) ;1. Abtastwert laden (1 Zyklus) Y0 = *(R1 ++) ;1. Koeffizient laden (1 Zyklus) Repeat N ;N-fach Hardw. loop(4 Zyklen) {

A = A + X0 Y0 ; x[n-k] * ak (2 Zyklen)|| X0 = *(R0 ++) ;par. Wert laden|| Y0 = *(R1 ++) ;par. Koeff. laden

} return (A)}

Performance FIR (Version 1): N 13 Zyklen + Initialisierung

Performance FIR (Version 2): N 2 Zyklen + Initialisierung

Folie 12

Page 12: Vortrag über Signalprozessoren

Anwendungsbeispiel ‘FIR-Filter’

Prozessor ADSP-21060 TMS320C40Befehlsausführung 25 ns 25 nsSpitzen-MFLOPS 120 801024-Punkte FFT (komplex) 0,46 ms 0,96 msDivision 150 ns 225 nsDMA-Bandbreite Port / Port 40 MBytes/s 32 MBytes/sDMA-Bandbreite Off- / On-Chip 240 MBytes/s 32 MBytes/sDMA-Bandbreite On- / Off-Chip 240 MBytes/s 53 MBytes/sDatenregister 32 8Interner RAM (32 Bit Worte) 2 mal 64k 2 mal 1kParallele Ports 6 6Serielle Ports 2 0DMA-Kanäle 10 6

Abbildung 1-14: ADSP-21060 gegen TMS320C40

Prozessor ADSP-2104 TMS320C203Evaluation Boards $ 89 $ 99Software Entwicklung $ 395 $ 4000Emulator $ 1495 $ 4000Summe $ 1979 $ 8099

Abbildung 1-15: Entwicklungskosten im Vergleich

Prozessor ADSP-2104 TMS320C203Befehlsausführung 50 ns 25 nsMIPS 20 40FFT Berechnung 0,596 ms 0,626 msZyklen 11914 25033Datenspeicher (32 Bit Worte) 256 288Prg.-speicher (32 Bit Worte) 512 256Serielle Ports 2 2Piplinestruktur 2 Stufig 4 StufigModulo Adressierung ja -Datenregister 32 4Parallele Verarbeitung keine Einschr. mit Einschr.Externe Speicherzugriffe 0 Waitstates X WaitstatesIndirekte Addressierung keine Einschr. mit Einschr.Befehlsverarbeitungszeit 1 Zyklus 1 - 4 Zyklen

Abbildung 1-16: ADSP-2104 gegen TMS320C203

Folie 13