technische informatik i (ss 2006) 1 teil 5: embedded systems 5c: dsps (digitale signal prozessoren)

33
Technische Informatik I (SS 2006) 1 Teil 5: Embedded Systems 5c: DSP‘s (Digitale Signal Prozessoren)

Upload: gerlinde-borcherding

Post on 05-Apr-2015

104 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Technische Informatik I (SS 2006) 1 Teil 5: Embedded Systems 5c: DSPs (Digitale Signal Prozessoren)

Technische Informatik I (SS 2006) 1

Teil 5: Embedded Systems5c: DSP‘s

(Digitale Signal Prozessoren)

Page 2: Technische Informatik I (SS 2006) 1 Teil 5: Embedded Systems 5c: DSPs (Digitale Signal Prozessoren)

Technische Informatik I (SS 2006) 2

DSP = Digitale Signalprozessoren

Entwickelt für High-Speed-Algorithmen Telekommunikation

(z.B. Noise-Filter) JPEG/MPEG Encoder MP3 Encoder ADSL

(Asymmetrical Digital Subscriber Line)wegen mehrerer Trägerfrequenzen

Oft in Kombination mit ADC (Analog-to-Digital-Converter) DAC (Digital-to-Analog-Converter)

Page 3: Technische Informatik I (SS 2006) 1 Teil 5: Embedded Systems 5c: DSPs (Digitale Signal Prozessoren)

Technische Informatik I (SS 2006) 3

DSP-Algorithmen

Beipiel: FIR-Filter Finite Impulse Response y[n] = c[k] * x[n-k] rekursiv:

output(jetzt) = input(jetzt) – ½ x output(vorher) für mehrere Zeitschritte:

digitaler „Equalizer“

in Programmiersprache C y[n] = 0.0;

for (k=0; k<N; k++)y[n] += c[k] * x[n-k]

y[n] wird in mehreren Loops

benutzt

Array-Index(kann groß sein)

rekursive Arithmetik in Index

Anwendungz.B als „Echo Cancellation“für Video-Konferenzen

Page 4: Technische Informatik I (SS 2006) 1 Teil 5: Embedded Systems 5c: DSPs (Digitale Signal Prozessoren)

Technische Informatik I (SS 2006) 4

Exkurs: Was ist ein Pointer ?

#include <stdio.h>

void main(){

int x1=3; int x2=4;

int *p1; p1 = &x1;

int *p2; p2 = &x2;

printf("%x %x\n", p1, p2);

/* Ausgabe : bfffe828 bfffe824 */

printf("%d %d\n", *p1, *p2);

/* Ausgabe: 3 4 */}

Page 5: Technische Informatik I (SS 2006) 1 Teil 5: Embedded Systems 5c: DSPs (Digitale Signal Prozessoren)

Technische Informatik I (SS 2006) 5

Beispiel: FIR-Filter

FIR Filter wird effektiver durch Benutzung von Pointern

float *y_ptr=&y[n];float *c_ptr=&c[0];float *x_ptr=&x[n];

for (k=0; k<N; k++)*y_ptr += *c_ptr++ * *x_ptr--;

Bedeutung von *x_ptr: Wie indirekte Addressierung !

Bedeutung von ++ / --: x_ptr nach Operation in/dekrementieren

Weitere Verbesserung der Geschwindigkeit: x_ptr in ein Register legen

x_ptr

x[0]x[1]x[2]….x[n]

Page 6: Technische Informatik I (SS 2006) 1 Teil 5: Embedded Systems 5c: DSPs (Digitale Signal Prozessoren)

Technische Informatik I (SS 2006) 6

Was soll ein DSP können ?

Pointer in ein Register speichern Mit Auto-Inkrement/Dekrement

in einem Befehl evtl. sogar mit Adressierung

im gleichen Befehl möglichst viele Register Typische Operation: y=a + c*b in einem Taktzyklus evtl. mehr als einen Datenbus,

dann parallel genutzt hohe I/O-Bandbreite

alles auf einem Chip (Single-Chip-Computer)

Page 7: Technische Informatik I (SS 2006) 1 Teil 5: Embedded Systems 5c: DSPs (Digitale Signal Prozessoren)

Technische Informatik I (SS 2006) 7

Was soll ein DSP können ?

Dafür würde ein Pentium 10-20 Taktzyklen benötigen.

Page 8: Technische Informatik I (SS 2006) 1 Teil 5: Embedded Systems 5c: DSPs (Digitale Signal Prozessoren)

Technische Informatik I (SS 2006) 8

Motorola DSPs

DSP56x0x fixed-point Arithmetik programmierbar in Assembler SIMD Harvard Architektur 24-bit program, 24-bit data

24-bit = 144 dBmenschliches Ohr = 120 dBausreichend für Audioanwendungen(Abtastrate 192 kHz)

Akkumulator Register sind 56-bit(2 x 24 bit parallel + 8 bit „headroom“)

Anwendungen: ATARI Falcon Homecomputer, Radar (Flugüberwachung), PCI interface Steuerung, Motorola Telefone

Page 9: Technische Informatik I (SS 2006) 1 Teil 5: Embedded Systems 5c: DSPs (Digitale Signal Prozessoren)

Technische Informatik I (SS 2006) 9

Texas Instruments DSPs

TI TMS3x0, seit 1983 seit dem TMS320 programmierbar in C

(vorher Assembler) sogar GNU gcc Compiler

seit 2003 von TU Chemnitzerhältlich

fixed-point and floating-point DSP Typen Host-Port

JTAG für Code download Anwendung:

in Creative MP3 Playern in DELL MP3 Playern

delayed branch logic „DM Varianten“ haben einen ARM Prozessor auf dem Chip

Beispiel:DM320 hat einen ARM926 und einen TMS320C5409 DSP

Page 10: Technische Informatik I (SS 2006) 1 Teil 5: Embedded Systems 5c: DSPs (Digitale Signal Prozessoren)

Technische Informatik I (SS 2006) 10

Beispiel: Texas Instruments DSP

Harvard-Architektur Host-Port

für Zugriff „von außen“

8 Mini-Instruktionen parallel VLIW

= Very Large Instruction Word

Page 11: Technische Informatik I (SS 2006) 1 Teil 5: Embedded Systems 5c: DSPs (Digitale Signal Prozessoren)

Technische Informatik I (SS 2006) 11

Was ist „delayed branch“ Exekution ?

zu allererst:es gibt „Branch“-Instruktionen branch („call“ oder „jump“) conditional branch („if“ und „elseif“)

es gibt eine Pipeline in der Pipeline wird bereits „dekodiert“ wenn ein Branch passiert, ist alles,

was dahinter in der Pipeline folgt, quasi „wertlos“: also „flush pipeline“ notwendigjedoch dies verschwendet Taktzyklen

„delayed branch“ bedeutet:kein „pipeline flush“ !einfach alles (auch das was gar nicht ausgeführt werden soll) dekodieren und ausführen, aber nur als „dummy“ ausführen

Page 12: Technische Informatik I (SS 2006) 1 Teil 5: Embedded Systems 5c: DSPs (Digitale Signal Prozessoren)

Technische Informatik I (SS 2006) 12

Was ist VLIW = „Very Large Instruction Word“ ?

z.B. Motorola 56x002 Instruktionen parallel2 x 24 bit (+ 8-bit extra)zu einer „large“ 56-bit Instruktion

z.B. Texas Instruments TMS320C62xx8 Instruktionen parallelder Compiler entscheidet, welche Instruktionen parallel,d.h. unabhängig voneinander sind,und zu einer „very large instruction“ zusammengefügt werdenhier: 256 bits !

Page 13: Technische Informatik I (SS 2006) 1 Teil 5: Embedded Systems 5c: DSPs (Digitale Signal Prozessoren)

Technische Informatik I (SS 2006) 13

Was ist „super-skalar“ ?

VLIW

der Compiler produziert Code (während des Compilierens),welcher identifiziert, welche Instruktionen in parallel ausgeführt werden

super-skalar

die Hardware entscheidet (während der Ausführung),welche Instruktionen in parallel ausgeführt werdenBeispiel:LSI Logic ZSP500in japanischen CDMA Mobiltelefonen

Page 14: Technische Informatik I (SS 2006) 1 Teil 5: Embedded Systems 5c: DSPs (Digitale Signal Prozessoren)

Technische Informatik I (SS 2006) 14

Pipeline und Super-Skalar

Page 15: Technische Informatik I (SS 2006) 1 Teil 5: Embedded Systems 5c: DSPs (Digitale Signal Prozessoren)

Technische Informatik I (SS 2006) 15

Audio-Daten

Page 16: Technische Informatik I (SS 2006) 1 Teil 5: Embedded Systems 5c: DSPs (Digitale Signal Prozessoren)

Technische Informatik I (SS 2006) 16

Beispiel eines Audio-Encoders

Audiodaten (z.B. im WAV Format)= Abfolgen von Amplituden

Bsp.195-30-0(Pause)-208

das muß als Bitfolge gesendet werden:11000011-00011110-00000000-11010000

Encoder:welche Ziffer – wie oft – welche Ziffer – wie oft ... 1-2-0-4-1-2-0-3-1-4-0-9-1-2-0-1-1-1-0-4

auch byte übergreifend ! (siehe 0-9, das sind mehr als 8)

das wäre eine Kompression von 20/32=62.5%

bessere Kompression von Audio-Daten: MP3

Page 17: Technische Informatik I (SS 2006) 1 Teil 5: Embedded Systems 5c: DSPs (Digitale Signal Prozessoren)

Technische Informatik I (SS 2006) 17

SHARC = Super Harvard Architecture Computer DMA = Direct Memory Access 6 link ports = voneinander unabhängige Datenbusse

Bsp: 2106x von Analog Devices

Page 18: Technische Informatik I (SS 2006) 1 Teil 5: Embedded Systems 5c: DSPs (Digitale Signal Prozessoren)

Technische Informatik I (SS 2006) 18

SHARC DSP

Analog Devices ADSP-2106x Super-Harvard Architektur = dual-ported SRAM

(d.h. benachbarter SHARC kann gleichzeitig zugreifen) 32-bit IEEE Floating Point Unit programmierbar in C parallel:

1-Taktzyklus multiply & ALU Operationen in parallelmit memory read/write und instruction fetch

multiply with add/subtract in 1 Zyklus

6 Link-Ports (ähnlich zu Transputer-Links)Datentransfer mit 40 MB/s

JTAG Ports für Test DMA controller

(sogar extern-nach-extern DMA möglich !)

Page 19: Technische Informatik I (SS 2006) 1 Teil 5: Embedded Systems 5c: DSPs (Digitale Signal Prozessoren)

Technische Informatik I (SS 2006) 19

SHARC Prozessor Pins

viele DATA Pins

Page 20: Technische Informatik I (SS 2006) 1 Teil 5: Embedded Systems 5c: DSPs (Digitale Signal Prozessoren)

Technische Informatik I (SS 2006) 20

Page 21: Technische Informatik I (SS 2006) 1 Teil 5: Embedded Systems 5c: DSPs (Digitale Signal Prozessoren)

Technische Informatik I (SS 2006) 21

Matrix Multiplikation mit einem SHARC DSP

Page 22: Technische Informatik I (SS 2006) 1 Teil 5: Embedded Systems 5c: DSPs (Digitale Signal Prozessoren)

Technische Informatik I (SS 2006) 22

Matrix Multiplikation mit einem SHARC DSP

Das ist Original Quell-Code für den Analog Devices SHARC DSP

Page 23: Technische Informatik I (SS 2006) 1 Teil 5: Embedded Systems 5c: DSPs (Digitale Signal Prozessoren)

Technische Informatik I (SS 2006) 23

test

Page 24: Technische Informatik I (SS 2006) 1 Teil 5: Embedded Systems 5c: DSPs (Digitale Signal Prozessoren)

Technische Informatik I (SS 2006) 24

Link-Port auf optisches Kabel

Page 25: Technische Informatik I (SS 2006) 1 Teil 5: Embedded Systems 5c: DSPs (Digitale Signal Prozessoren)

Technische Informatik I (SS 2006) 25

Dual Ported RAM

Harvard Architektur:Befehlsspeicher ist physikalisch vom Datenspeicher getrennt

Super-Harvard Architektur: dual ported auf Deutsch: Speicher mit 2 Türen

SRAM = Flip-Flops (2 Transistoren), schneller Zugriff ~10 nsDRAM = Transistor + Silicium-Kondensator (auf dem Wafer) + Steuerleitungen,kleiner da Address-Multiplexing (takt-by-takt), aber langsam ~60 ns

SHARC hat SRAM (static RAM) auf dem Chip

SRAM

Adresse1 Adresse2

Daten1 Daten2

Page 26: Technische Informatik I (SS 2006) 1 Teil 5: Embedded Systems 5c: DSPs (Digitale Signal Prozessoren)

Technische Informatik I (SS 2006) 26

Wie programmiert man einen SHARC ?

oder einen anderen DSP ? Cross-Compiler:

ein binär Code wird auf einer anderen Platform erzeugt (z.B. PC oder SPARC Workstation)

der binär-Code wird dann an einen Port geschrieben (z.B. über ein JTAG Kabel oder einen VME Bus)

nach 256 words (x 4 bytes) beginnt der DSP automatisch mit der Ausführung

Trickerstes Kommando im Code: bleib stehen und warte auf Eingabe !

Page 27: Technische Informatik I (SS 2006) 1 Teil 5: Embedded Systems 5c: DSPs (Digitale Signal Prozessoren)

Technische Informatik I (SS 2006) 27

Vergleich DSP und Pentium

Beispiel:Pentium MMX 266 vs. TMS32062x

Pentium verbraucht 4x mehr Strom(CISC Prozessor)

gleicher Preis (~20 Euro) Pentium ist ~4x größer Pentium benötigt Kühlung Aber DSP hat 3 x mehr MIPS

(Million Instructions per Second) Fast Fourier Transform

benötigt Faktor ~3 weniger Rechenzeit auf DSP

Page 28: Technische Informatik I (SS 2006) 1 Teil 5: Embedded Systems 5c: DSPs (Digitale Signal Prozessoren)

Technische Informatik I (SS 2006) 28

DSPs von Analog Devices

Page 29: Technische Informatik I (SS 2006) 1 Teil 5: Embedded Systems 5c: DSPs (Digitale Signal Prozessoren)

Technische Informatik I (SS 2006) 29

DSPs von Motorola

Page 30: Technische Informatik I (SS 2006) 1 Teil 5: Embedded Systems 5c: DSPs (Digitale Signal Prozessoren)

Technische Informatik I (SS 2006) 30

DSPs von Texas Instruments

Page 31: Technische Informatik I (SS 2006) 1 Teil 5: Embedded Systems 5c: DSPs (Digitale Signal Prozessoren)

Technische Informatik I (SS 2006) 31

Wieiterentwicklung: TigerSHARC von Analog Devices

Taktrate 600 MHz(vorher 40 MHz)

Page 32: Technische Informatik I (SS 2006) 1 Teil 5: Embedded Systems 5c: DSPs (Digitale Signal Prozessoren)

Technische Informatik I (SS 2006) 32

Tiger-SHARC Arrays (ähnlich zu Transputer-Arrays)

Verschaltung mit schnellen Link-Ports 250 MB/s(vorher 40 MB/s)

Page 33: Technische Informatik I (SS 2006) 1 Teil 5: Embedded Systems 5c: DSPs (Digitale Signal Prozessoren)

Technische Informatik I (SS 2006) 33

Tiger-SHARC Arrays: Speicher

Multiprozessor-Fähigkeiteneingebaut

Gemeinsamer Adressraum für 8 Prozessoren