Digitale Signalprozessoren dienen nicht nur als Ersatz für aufwendige analoge Filtertechnik, sondern können darüber hinaus Aufgaben ausführen, die analog nur schwer oder überhaupt nicht lösbar wären:
Frequenzfilter hoher Ordnung mit geringem Phasenfehler, z. B. Klangbeeinflussung beim Abmischen und in Mischpulten
Digitale Signalprozessoren sind spezialisierte Prozessoren, die zu einem festen Bestandteil moderner Signalverarbeitungssysteme geworden sind. DSPs ähneln größtenteils Universalprozessoren. Sie können mit einer Programmiersprache wie C oder C++programmiert werden und ein Betriebssystem ausführen. Der Hauptunterschied zwischen DSPs und herkömmlichen Prozessoren liegt im Befehlssatz und in der Speicherverwaltung. Der Befehlssatz eines DSP ist an bestimmte Anwendungssoftware angepasst.[1]
Es gibt viele DSPs auf dem aktuellen Markt, die aufgrund der Fortschritte und Verbesserungen der Halbleitertechnologie in den DSP-Architekturen eine hohe Leistung liefern. Preise und Leistung variieren stark zwischen den wichtigsten DSP-Herstellern und IP-Core-Anbietern.[2]
Echtzeitfähigkeit
Ein DSP muss eine bestimmte Datenmenge pro Zeitspanne sicher verarbeiten können. Dies ergibt sich aus der Forderung einer meist fixen und von außen vorgegebenen Datenrate, mit der die Eingangsdaten in den DSP gelangen bzw. die verarbeiteten Daten wieder ausgegeben werden müssen. Eine Art Handshake oder zeitliches Anhalten bei der Datenverarbeitung ist bei dieser echtzeitfähigen Verarbeitung meistens nicht möglich.
Folgende Maßnahmen dienen dem Erhöhen der Verarbeitungsgeschwindigkeit:
Spezielle synchrone, serielle Schnittstellen für die Ein- und Ausgabe der digitalen Signale.
Sogenannte MAC-Befehle für die gleichzeitige Multiplikation und Addition in einem Maschinenzyklus.
Signalprozessoren mit Festkommaarithmetik sind im Aufbau meist einfacher und haben einen geringeren Stromverbrauch. Dafür ist das Implementieren bestimmter Algorithmen komplizierter, da bei jeder Berechnung vom Programmierer bedacht werden muss, ob es möglicherweise zu Überläufen in der Zahlendarstellung kommen kann und auf welcher Stelle sich das Binärkomma befindet. Ein typisches Anwendungsfeld von Festkomma-DSPs ist beispielsweise das Verarbeiten von Audiosignalen. Typische Vertreter von Signalprozessoren mit Festkommaarithmetik ist die DSP-Serie ADSP218x und Blackfin BF53x von Analog Devices sowie die TMS320VC5x von Texas Instruments.
Signalprozessoren mit Gleitkommaarithmetik sind komplexer im Aufbau, da ihre Rechenwerke die kompliziertere Darstellung der Gleitkommazahlen verarbeiten können. Damit ist bei gleicher Rechenleistung meist ein höherer Stromverbrauch verbunden. Der Vorteil liegt in der meist einfachen Implementierung komplizierter Algorithmen. Ein typisches Anwendungsfeld von Gleitkomma-DSPs ist beispielsweise das Verarbeiten von Videosignalen. Typische Vertreter von Signalprozessoren mit Gleitkommaarithmetik sind die als SHARC bezeichneten Bausteine von Analog Devices und die TMS320VC67x von Texas Instruments.
Operationen
Es existieren mehrere Rechenwerke (ALUs), darunter ein Multiply-Accumulate-Rechenwerk (MAC). Dieses Rechenwerk ermöglicht die Operation A* = A + B · C in einem einzigen Prozessorzyklus und dient vornehmlich der Geschwindigkeitserhöhung der für spektrale Operationen – etwa der für die schnelle Fourier-Transformation oder der Faltung – erforderlichen Berechnungen.
Auf Boolesche Operationen beschränkte Rechenwerke werden in einigen DSPs (z. B. TI TMS320Cxx) zur unabhängigen Datenmanipulation eingesetzt (PLU = Parallel Logic Unit).
Es werden auch Address Generation Units (AGU) eingesetzt. Die AGU besteht aus programmierbaren Zählern (Counters), Shiftern und anderen logischen Elementen. Dadurch können die Adressberechnungen zum Beispiel für die Operanden parallel zu arithmetischen Operationen ausgeführt werden, um die Speichertransferrate nicht zu verkleinern. Einige AGU unterstützen die Register-indirekte Adressierung mit nachträglicher Inkrementierung. Anwendung finden sie bei Berechnungen, wo Daten wiederholt berechnet werden, die sequentiell im Speicher angeordnet sind. Für den Algorithmus zur schnellen Fourier-Transformation (FFT) wird auch eine Bitreversed-Adressierung eingesetzt.
Die Execution Unit (EXU) hat die Aufgabe der Datenmanipulation. Jeder Cluster darf die Register des Nachbarclusters auslesen. Beispiel: TI TMS320C6201
Programmablauf
Verschachteltes No-overhead-Hardware-Looping mittels eines dedizierten Loop-Stacks.
Die heutigen DSP sind darüber hinaus oft massiv-parallel programmierbar, das heißt in einem einzigen Prozessorzyklus können mehrere Rechen- und/oder Speichertransferoperationen gleichzeitig durchgeführt werden.
Schleifenbefehle beschleunigen die Ausführung von Schleifen. Diese werden hardwarekontrolliert ausgeführt. Einige DSPs verwenden Pipelines (Pipelining) und Instruction Caches, um die Ausführung von Schleifen zu beschleunigen. Man unterscheidet zwei Arten von Schleifenbefehlen:
Single Instruction Hardware Loop – Wiederholung einer Operation
Multi Instruction Loop – Wiederholung eines ganzen Anweisungsblockes
in dem quasi-gleichzeitig eine Gleitkomma-Multiplikation, eine Gleitkomma-Addition, eine Gleitkomma-Subtraktion, ein Schreibzugriff auf den Speicher mit modulo-zyklischem Postincrement/-decrement sowie ein Lesezugriff auf den Speicher mit modulo-zyklischem Postinkrement/-dekrement stattfindet.
In den frühen 1970er-Jahren entstand im Lincoln Laboratory der Lincoln FDP (Fast Digital Processor) mit Von-Neumann-Struktur als der erste dedizierte digitale Signalprozessor. Anschließend wurde mit der besser geeigneten Harvard-Architektur der LSP/2 gefertigt. Allerdings bestand dieser Rechner noch aus mehreren 1000 diskreten ICs.
Die ersten Einzelchip-DSPs kamen in den frühen 1980ern auf den Markt. Typische Vertreter waren der Intel 2920, TMS32010 von Texas Instruments oder der NEC µPD7720.
Gegenwart
Elemente von DSPs finden sich auch zunehmend in Desktop-CPUs wieder, wie zum Beispiel in den AltiVec-Erweiterungen des PowerPC oder (abgeschwächt) in den SIMD-Erweiterungen von Intel und AMD. Dies liegt an der zunehmenden Verbreitung von Multimedia-Inhalten; Datenformate wie das JPEG-Format, MP3 oder MPEG2 erfordern eine DCT-Kodierung beziehungsweise -Dekodierung, deren Berechnung eigentlich eine klassische DSP-Aufgabe ist. Auch die Berechnung der immer weiter verbreiteten Verschlüsselung profitiert von diesen Befehlssatz-Erweiterungen. Auch im Bereich der Embedded Systeme werden die Microcontroller durch DSP-Funktionalitäten ergänzt, wodurch die Rechenleistung gesteigert und der Stromverbrauch gesenkt werden kann. Typische Beispiele sind der Arm Cortex-M4, die Erweiterung NEON bei den großen Arm Cortex-Cores, der dsPIC von Microchip sowie die XS1-Serie von XMOS.
Zukunft
Der generische DSP bekommt zusehends Konkurrenz durch RISC/CISC-CPUs, die mit speziellen Erweiterungen komplexe Rechenaufgaben wie RSA/AES/3DES hoch optimiert abarbeiten können. Darüber hinaus werden Aufgaben zur schnellen Signalverarbeitung vermehrt in flexible parallele digitale Strukturen verlagert, wie sie z. B. in immer leistungsfähigeren Field Programmable Gate Arrays (FPGAs) zunehmend und kostengünstig zur Verfügung stehen.
Anwendungsgebiete
Digitale Signalprozessoren finden heute unter anderem in den folgenden Bereichen bzw. Geräten Anwendung:
Helmut Bähring: Beispiele für Digitale Signalprozessoren. In: Helmut Bähring (Hrsg.): Anwendungsorientierte Mikroprozessoren. Springer, Berlin/Heidelberg 2010, ISBN 978-3-642-12291-0, doi:10.1007/978-3-642-12292-7_10.