Peter Massam
Auf der Suche nach der richtigen Plattform für die Verarbeitung eines DSP-Algorithmus’ schauen sich viele Ingenieure als erstes bei den speziellen DSPs (digitale Signalprozessoren) um, während andere zunächst FPGAs, ASICs oder andere programmierbare Logikbausteine in Erwägung ziehen. Nur wenige werden jedoch in der Plattform, mit der sie den Großteil ihrer Arbeitstage verbringen, einen geeigneten Kandidaten sehen. Dabei stellen moderne PCs leistungsfähige Systeme dar. Deren CPUs werden mit deutlich höherer Frequenz getaktet als DSPs, und die von vielen PC-Prozessoren unterstützten Vektoroperationen sind mit jenen vergleichbar, die in DSPs implementiert sind.
Ist die Zeit des reinrassigen DSPs damit abgelaufen? Wie jede technische Aufgabe lässt sich auch ein digitales Signalverarbeitungsproblem auf vielerlei Weise lösen, und jede Lösung hat ihre spezifischen Vor- und Nachteile. Das Resultat ist in der Regel ein Kompromiss aus Preis, Performance, Verfügbarkeit, Flexibilität, Stromverbrauch, usw.
FPGAs erzielen durch Parallelverarbeitung ein Höchstmaß an Leistungsfähigkeit, allerdings zu einem hohen Preis. ASICs wiederum können diesen Performance-Vorteil zu niedrigeren Kosten bieten – allerdings nur, wenn die Stückzahlen hoch sind. PC-Prozessoren haben gegenüber programmierbaren Logikbausteinen eine unübertroffene Flexibilität, geraten aber bezüglich der Performance ins Hintertreffen. Reine DSPs bieten Unterstützung für sehr spezielle Algorithmentypen (z.B. Bit-Reversed-Adressierung für FFT-Algorithmen oder Add-Compare-Select für Viterbi-Algorithmen).
Ein entscheidender Vorteil, den die Verwendung einer PC-basierten Plattform für die digitale Signalverarbeitung hat, ist schlicht die Tatsache, dass den meisten Ingenieuren ein solches System zur Verfügung steht. Das Design von Algorithmen und Software kann daher mit weitgehender Annäherung an die finale Hardware voranschreiten, lange bevor diese tatsächlich verfügbar ist. Mit Benchmark-Implementierungen wichtiger Algorithmen lässt sich außerdem rasch ermitteln, ob die betreffende Plattform die für das Produkt erforderliche Verarbeitungsleistung auch wirklich aufbringen kann.