Digitaler Signalprozessor
Digitale Signalprozessoren (engl. digital signal processor, DSP) sind auf bestimmte Rechenoperationen geschwindigkeitsoptimierte CPUs, die von gewöhnlichen CPUs durch die folgenden Eigenschaften abweichen:
- Der Existenz mehrerer Rechenwerke (ALUs), darunter eines Multiply-Accumulate-Rechenwerks (MAC). Dieses Rechenwerk ermöglicht die Operation A' = A + B x C in einem einzigen Prozessorzyklus und dient vornehmlich der Geschwindikeitserhöhung der für spektrale Operationen, etwa der für die Fast Fourier-Transformation oder der Faltung erforderlichen Berechnungen.
- Implementation des Prozessors ausschließlich in Harvard-Architektur.
- Der Existenz eines dedizierten Hardware-Stacks.
- Vernestetes no-overhead Hardware-Looping mittels eines dedizierten Loop-Stacks.
- Gecashtes Prefetch und Predecoding der Instruktionen (Pipelining) für eine extrem hohe Ausführungsgeschwindikeit der Befehle.
Die heutigen DSP's sind darüberhinaus massiv parallelprogrammierbar, d.h. in einem einzigen Prozessorzyklus können mehrere Rechen- und/oder Speichertransferoperationen gleichzeitig durchgeführt werden.
Der ADSP-21065L von Analog Devices erlaubt etwa folgenden einzyklischen Befehl:
F0=F3*F7, F1=F11+F15, F2=F11–F15, DM(I0,M1)=F2, F3=PM(I8,M9);
in welchem eine Fließpunktmultiplikation, eine Fließpunktaddition, eine Fließpunktsubtraktion, ein Schreibzugriff auf den Speicher mit modulo-zyklischem Postincrement/-decrement sowie ein Lesezugriff auf den Speicher mit modulo-zyklischem Postincrement/-decrement stattfindet.