Der BlackfinProzessor und andere DSPs · Warum DSPs ? 7 GPP vs. DSP ... – entwickelt von Analog...

30
Der Blackfin-Prozessor und andere DSPs Der Blackfin-Prozessor und andere DSPs Ausgewählte Kapitel eingebetteter Systeme Rudi Pfister 31.05.2006

Transcript of Der BlackfinProzessor und andere DSPs · Warum DSPs ? 7 GPP vs. DSP ... – entwickelt von Analog...

Page 1: Der BlackfinProzessor und andere DSPs · Warum DSPs ? 7 GPP vs. DSP ... – entwickelt von Analog Devices und Intel verbindet DSP und MCUEigenschaften ADSPBF561 ist DualCoreProzessor

Der Blackfin­Prozessor und andere DSPsDer Blackfin­Prozessor und andere DSPs

Ausgewählte Kapitel eingebetteter Systeme

Rudi Pfister

31.05.2006

Page 2: Der BlackfinProzessor und andere DSPs · Warum DSPs ? 7 GPP vs. DSP ... – entwickelt von Analog Devices und Intel verbindet DSP und MCUEigenschaften ADSPBF561 ist DualCoreProzessor

Der Blackfin­Prozessor und andere DSPs 2

Übersicht

● Einleitung ­ Warum DSPs ?

● Eigenschaften von DSPs

● Der Blackfin­Prozessor

● Fazit

Page 3: Der BlackfinProzessor und andere DSPs · Warum DSPs ? 7 GPP vs. DSP ... – entwickelt von Analog Devices und Intel verbindet DSP und MCUEigenschaften ADSPBF561 ist DualCoreProzessor

Warum DSPs ? 3

Welche Aufgaben haben Prozessoren ?

● Daten verschieben– movl %eax, (%esp)– pushl %ebp

● Werte vergleichen– cmpl $0, ­12(%ebp) 

● Berechnungen– addl %edx, %eax– subl %eax, %esp

Page 4: Der BlackfinProzessor und andere DSPs · Warum DSPs ? 7 GPP vs. DSP ... – entwickelt von Analog Devices und Intel verbindet DSP und MCUEigenschaften ADSPBF561 ist DualCoreProzessor

Warum DSPs ? 4

Anwendungsschwerpunkte

● Datenverarbeitung– Textverarbeitung– Datenbankverwaltung– Betriebssysteme

● mathematische Berechnungen– Signalverarbeitung– Kontrolle von Bewegungen– Simulationen

 

Page 5: Der BlackfinProzessor und andere DSPs · Warum DSPs ? 7 GPP vs. DSP ... – entwickelt von Analog Devices und Intel verbindet DSP und MCUEigenschaften ADSPBF561 ist DualCoreProzessor

Warum DSPs ? 5

Datenverarbeitung: Liste sortieren

● Vergleichen einzelner Elemente miteinander

– A = B, A < B, etc.

● Diese dann evtl. vertauschen

– A ­> tmp, B ­> A, tmp ­> B

Page 6: Der BlackfinProzessor und andere DSPs · Warum DSPs ? 7 GPP vs. DSP ... – entwickelt von Analog Devices und Intel verbindet DSP und MCUEigenschaften ADSPBF561 ist DualCoreProzessor

Warum DSPs ? 6

math. Berechnungen: FIR­Filter

● FIR ­ Finite Impulse Response

– Audiotechnik – Signalentzerrung

● Berechnungsvorschrift

– yn=a0 xna1 xn−1a2 xn−2a3 x n−3 ...

● Hauptsächliche Operationen

– Addition

– Multiplikation

Page 7: Der BlackfinProzessor und andere DSPs · Warum DSPs ? 7 GPP vs. DSP ... – entwickelt von Analog Devices und Intel verbindet DSP und MCUEigenschaften ADSPBF561 ist DualCoreProzessor

Warum DSPs ? 7

GPP vs. DSP

● General­Purpose­Prozessoren (GPP)

– Sehr flexibel ausgelegt

– decken Anforderungen von Servern und Desktopsystemen

● Digitale Signalprozessoren (DSPs)

– optimiert für Berechnungen

– decken Anforderungen von Spezialzwecksystemen

Page 8: Der BlackfinProzessor und andere DSPs · Warum DSPs ? 7 GPP vs. DSP ... – entwickelt von Analog Devices und Intel verbindet DSP und MCUEigenschaften ADSPBF561 ist DualCoreProzessor

Eigenschaften von DSPs 8

Eigenschaften eines DSPs

● Optimiert für Signalverarbeitungsaufgaben

● nur sehr speziell einsetzbar

● kleine Baugrößen

● niedriger Stromverbrauch wichtig

Page 9: Der BlackfinProzessor und andere DSPs · Warum DSPs ? 7 GPP vs. DSP ... – entwickelt von Analog Devices und Intel verbindet DSP und MCUEigenschaften ADSPBF561 ist DualCoreProzessor

Eigenschaften von DSPs 9

Aufbau eines DSPs

Page 10: Der BlackfinProzessor und andere DSPs · Warum DSPs ? 7 GPP vs. DSP ... – entwickelt von Analog Devices und Intel verbindet DSP und MCUEigenschaften ADSPBF561 ist DualCoreProzessor

Eigenschaften von DSPs 10

Multiple Verarbeitungseinheiten

● ALU

● Shifter

● MAC­Einheit

● Verarbeitungseinheiten doppelt oder mehrfach vorhanden

● ermöglicht hohe Verarbeitungsgeschwindigkeiten

Page 11: Der BlackfinProzessor und andere DSPs · Warum DSPs ? 7 GPP vs. DSP ... – entwickelt von Analog Devices und Intel verbindet DSP und MCUEigenschaften ADSPBF561 ist DualCoreProzessor

Eigenschaften von DSPs 11

MAC­Operation

● Multiplizierer

● ALU

● Akkumulatorregister

● oft benötigt für Filterfunktionen

● führt die Operation A = A' + B x C aus

Page 12: Der BlackfinProzessor und andere DSPs · Warum DSPs ? 7 GPP vs. DSP ... – entwickelt von Analog Devices und Intel verbindet DSP und MCUEigenschaften ADSPBF561 ist DualCoreProzessor

Eigenschaften von DSPs 12

Speicherorganisation

● Harvard­Architektur– mehrere Busse– getrennte Speicher für Daten und Instruktionen

● Super­Harvard­Architektur– mehrere Speicherbereiche für Daten

Page 13: Der BlackfinProzessor und andere DSPs · Warum DSPs ? 7 GPP vs. DSP ... – entwickelt von Analog Devices und Intel verbindet DSP und MCUEigenschaften ADSPBF561 ist DualCoreProzessor

Eigenschaften von DSPs 13

Adressierung

● zusätzliche ALUs zur Adressberechnung

– AGUs – Address Generation Units

– nur Integerrechnung

– unterstützen viele Adressierungsarten, z.B. circular buffering

Page 14: Der BlackfinProzessor und andere DSPs · Warum DSPs ? 7 GPP vs. DSP ... – entwickelt von Analog Devices und Intel verbindet DSP und MCUEigenschaften ADSPBF561 ist DualCoreProzessor

Eigenschaften von DSPs 14

Kommunikation

● Schnittstellen

– seriell

– parallel

– andere Peripherie

● Direct Memory Access (DMA)

– geringe Last für Prozessor

Page 15: Der BlackfinProzessor und andere DSPs · Warum DSPs ? 7 GPP vs. DSP ... – entwickelt von Analog Devices und Intel verbindet DSP und MCUEigenschaften ADSPBF561 ist DualCoreProzessor

Eigenschaften von DSPs 15

FIR­Filter: General­Purpose­Prozessor

loop:

mov *r0,x0 // Holen des Samples

mov  *r1,y0 // Holen des Filterkoeffizienten

mult x0,y0,a // Diese multiplizieren und Ergebnis in a speichern

add  a,b // Ergebnis zur Summe addieren

inc r0 // Adresse des nächsten Samples

inc r1 // Adresse des nächsten Koeffizienten

dec ctr // Schleifenzähler erniedrigen

tst ctr // Testen auf Schleifenende

jnz loop // wenn nicht, zuruckspringen

Page 16: Der BlackfinProzessor und andere DSPs · Warum DSPs ? 7 GPP vs. DSP ... – entwickelt von Analog Devices und Intel verbindet DSP und MCUEigenschaften ADSPBF561 ist DualCoreProzessor

Eigenschaften von DSPs 16

FIR­Filter: DSP

move #Xaddr, r0 // Anfangsadresse der Samples

move #Yaddr, r1 // Anfangsadresse der Filterkoeffizienten

rep #Ntaps // Schleife initialisieren

mac x0,y0,b x:(r0)+,x0 y:(r1)+,y0 // MAC­Anweisung in der Schleife ausführen

● deutlich weniger Code● Adressierung und Schleifenkontrolle durch Hardware● MAC­Operation

– teilweise parallele Ausführung der Einzeloperationen

Page 17: Der BlackfinProzessor und andere DSPs · Warum DSPs ? 7 GPP vs. DSP ... – entwickelt von Analog Devices und Intel verbindet DSP und MCUEigenschaften ADSPBF561 ist DualCoreProzessor

Der Blackfin­Prozessor 17

Der Blackfin­Prozessor

● ADSP­BF5xx von Analog Devices

● MSA­Kern (Micro Signal Architecture)

– entwickelt von Analog Devices und Intel

● verbindet DSP­ und MCU­Eigenschaften

● ADSP­BF561 ist Dual­Core­Prozessor

● vielfältige Peripherie on­chip (je nach Typ)

Page 18: Der BlackfinProzessor und andere DSPs · Warum DSPs ? 7 GPP vs. DSP ... – entwickelt von Analog Devices und Intel verbindet DSP und MCUEigenschaften ADSPBF561 ist DualCoreProzessor

Der Blackfin­Prozessor 18

Blockschaltbild ADSP­BF535

Page 19: Der BlackfinProzessor und andere DSPs · Warum DSPs ? 7 GPP vs. DSP ... – entwickelt von Analog Devices und Intel verbindet DSP und MCUEigenschaften ADSPBF561 ist DualCoreProzessor

Der Blackfin­Prozessor 19

 Der Blackfin Prozessorkern

Page 20: Der BlackfinProzessor und andere DSPs · Warum DSPs ? 7 GPP vs. DSP ... – entwickelt von Analog Devices und Intel verbindet DSP und MCUEigenschaften ADSPBF561 ist DualCoreProzessor

Der Blackfin­Prozessor 20

Speicher

● flacher Adressraum (max. 4 GByte)● Level 1 Speicher

– aufgeteilt in mehrere Bänke– in Daten­ und Instruktionsspeicher unterteilt– Zugriff mit voller Prozessorgeschwindigkeit

● Level 2 Speicher– großer Speicherbereich– langsamerer Zugriff

● Externer Speicher

Page 21: Der BlackfinProzessor und andere DSPs · Warum DSPs ? 7 GPP vs. DSP ... – entwickelt von Analog Devices und Intel verbindet DSP und MCUEigenschaften ADSPBF561 ist DualCoreProzessor

Der Blackfin­Prozessor 21

Level 1 Speicher

● L1 Programmspeicher– SRAM oder 4­set­associative Cache

● L1 Datenspeicher– 2 Bänke, SRAM oder 2­set­associative Cache

● L1 scratchpad RAM– für Stack und lokale Variablen– kein DMA­Zugriff– nicht als Cache konfigurierbar

Page 22: Der BlackfinProzessor und andere DSPs · Warum DSPs ? 7 GPP vs. DSP ... – entwickelt von Analog Devices und Intel verbindet DSP und MCUEigenschaften ADSPBF561 ist DualCoreProzessor

Der Blackfin­Prozessor 22

Level 2 Speicher

● L2 Programm­ und Datenspeicher– SRAM, sehr groß im Vergleich zu L1 Speicher

● Externer Speicher– Zugriff über External Bus Interface (EBIU)– synchrones DRAM– asynchrone Speicher

● Flash­Speicher● EPROM● memory­mapped I/O­Geräte

Page 23: Der BlackfinProzessor und andere DSPs · Warum DSPs ? 7 GPP vs. DSP ... – entwickelt von Analog Devices und Intel verbindet DSP und MCUEigenschaften ADSPBF561 ist DualCoreProzessor

Der Blackfin­Prozessor 23

Speicher

● I/O Speicher– werden als ganz normaler Speicher adressiert– in den flachen Adressraum gemapped

● Memory Management Unit (MMU)– bietet Speicherschutz– Supervisor­ und Usermode– keine Adressumrechnung– verwaltet Caches

Page 24: Der BlackfinProzessor und andere DSPs · Warum DSPs ? 7 GPP vs. DSP ... – entwickelt von Analog Devices und Intel verbindet DSP und MCUEigenschaften ADSPBF561 ist DualCoreProzessor

Der Blackfin­Prozessor 24

Peripherie

● vielfältig, abhängig von Prozessortyp– Parallel Periphal Interface (PPI)– Serial Ports (SPORTs)– Serial Periphal Interface (SPI)– General­Purpose Timers– Universal Asynchronous Receiver Transmitter (UART)– Real Time Clock (RTC)– Watchdog Timer– General­Purpose I/O (programmable flags)

Page 25: Der BlackfinProzessor und andere DSPs · Warum DSPs ? 7 GPP vs. DSP ... – entwickelt von Analog Devices und Intel verbindet DSP und MCUEigenschaften ADSPBF561 ist DualCoreProzessor

Der Blackfin­Prozessor 25

System­Kontroll­Block

● steuern den Prozessor und dessen Verhalten– Prozessorspannung– Energieoptionen– Interrupthandling– DMA

● JTAG­Interface (Joint Test Action Group)– Schnittstelle zum Debuggen

Page 26: Der BlackfinProzessor und andere DSPs · Warum DSPs ? 7 GPP vs. DSP ... – entwickelt von Analog Devices und Intel verbindet DSP und MCUEigenschaften ADSPBF561 ist DualCoreProzessor

Der Blackfin­Prozessor 26

LeistungsvergleicheBDTImark2000­Ergebnisse

Page 27: Der BlackfinProzessor und andere DSPs · Warum DSPs ? 7 GPP vs. DSP ... – entwickelt von Analog Devices und Intel verbindet DSP und MCUEigenschaften ADSPBF561 ist DualCoreProzessor

Der Blackfin­Prozessor 27

Leistungsvergleiche

● es gibt leistungsfähigere DSPs

– aber meist teuerer

– Blackfin ca. 5 ­ 40 US­Dollar

– TI C64x ca. 189 US­Dollar

● Vergleich mit GPP nicht immer aussagekräftig

– andere Designziele

– BDTImark2000 ist für DSPs entwickelt

Page 28: Der BlackfinProzessor und andere DSPs · Warum DSPs ? 7 GPP vs. DSP ... – entwickelt von Analog Devices und Intel verbindet DSP und MCUEigenschaften ADSPBF561 ist DualCoreProzessor

Der Blackfin­Prozessor 28

Fazit

● Blackfin­Prozessor verbindet viele gute Eigenschaften● auch als vollwertiger MCU einsetzbar● ADSP­BF5xx Familie bietet weites Spektrum

– Leistung– Peripherie

● Viele Entwicklungstools vorhanden– Compiler, Assembler, Linker– Emulatoren– komplette Entwicklungsumgebungen

Page 29: Der BlackfinProzessor und andere DSPs · Warum DSPs ? 7 GPP vs. DSP ... – entwickelt von Analog Devices und Intel verbindet DSP und MCUEigenschaften ADSPBF561 ist DualCoreProzessor

Der Blackfin­Prozessor und andere DSPs 29

Zusammenfassung

● Verschiedene Anforderungen an Prozessoren● Datenverarbeitung● mathematische Berechnungen● DSPs haben viele spezielle Eigenschaften

– für mathematische Berechnungen– für generelle Geschwindigkeitssteigerung

● Blackfins haben diese Eigenschaften eingebaut– ist Digitaler Signalprozessor– aber auch vollwertiger Mikrocontroller 

Page 30: Der BlackfinProzessor und andere DSPs · Warum DSPs ? 7 GPP vs. DSP ... – entwickelt von Analog Devices und Intel verbindet DSP und MCUEigenschaften ADSPBF561 ist DualCoreProzessor

Der Blackfin­Prozessor und andere DSPs 30

Noch Fragen ?