Die Präsentation wird geladen. Bitte warten

Die Präsentation wird geladen. Bitte warten

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

Ähnliche Präsentationen


Präsentation zum Thema: "Technische Informatik I (SS 2006) 1 Teil 5: Embedded Systems 5c: DSPs (Digitale Signal Prozessoren)"—  Präsentation transkript:

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

2 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)

3 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 Anwendung z.B als Echo Cancellation für Video-Konferenzen

4 Technische Informatik I (SS 2006) 4 Exkurs: Was ist ein Pointer ? #include 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 */ }

5 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]

6 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)

7 Technische Informatik I (SS 2006) 7 Was soll ein DSP können ? Dafür würde ein Pentium 10-20 Taktzyklen benötigen.

8 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 dB menschliches Ohr = 120 dB ausreichend 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

9 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 Chemnitz erhä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

10 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

11 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 notwendig jedoch 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

12 Technische Informatik I (SS 2006) 12 Was ist VLIW = Very Large Instruction Word ? z.B. Motorola 56x00 2 Instruktionen parallel 2 x 24 bit (+ 8-bit extra) zu einer large 56-bit Instruktion z.B. Texas Instruments TMS320C62xx 8 Instruktionen parallel der Compiler entscheidet, welche Instruktionen parallel, d.h. unabhängig voneinander sind, und zu einer very large instruction zusammengefügt werden hier: 256 bits !

13 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 werden Beispiel: LSI Logic ZSP500 in japanischen CDMA Mobiltelefonen

14 Technische Informatik I (SS 2006) 14 Pipeline und Super-Skalar

15 Technische Informatik I (SS 2006) 15 Audio-Daten

16 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

17 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

18 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 parallel mit 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 !)

19 Technische Informatik I (SS 2006) 19 SHARC Prozessor Pins viele DATA Pins

20 Technische Informatik I (SS 2006) 20

21 Technische Informatik I (SS 2006) 21 Matrix Multiplikation mit einem SHARC DSP

22 Technische Informatik I (SS 2006) 22 Matrix Multiplikation mit einem SHARC DSP Das ist Original Quell-Code für den Analog Devices SHARC DSP

23 Technische Informatik I (SS 2006) 23 test

24 Technische Informatik I (SS 2006) 24 Link-Port auf optisches Kabel

25 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 ns DRAM = 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 Adresse1Adresse2 Daten1Daten2

26 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 Trick erstes Kommando im Code: bleib stehen und warte auf Eingabe !

27 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

28 Technische Informatik I (SS 2006) 28 DSPs von Analog Devices

29 Technische Informatik I (SS 2006) 29 DSPs von Motorola

30 Technische Informatik I (SS 2006) 30 DSPs von Texas Instruments

31 Technische Informatik I (SS 2006) 31 Wieiterentwicklung: TigerSHARC von Analog Devices Taktrate 600 MHz (vorher 40 MHz)

32 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)

33 Technische Informatik I (SS 2006) 33 Tiger-SHARC Arrays: Speicher Multiprozessor-Fähigkeiten eingebaut Gemeinsamer Adressraum für 8 Prozessoren


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

Ähnliche Präsentationen


Google-Anzeigen