Hohe Genauigkeit flexibel implementieren

Mit den DSP-Blöcken mit variabler Genauigkeit können Entwickler die Genauigkeit auf Block-Basis genau anpassen. Für symmetrische Filter reduzieren die in Hardware realisierten Voraddierer die Anzahl der benötigten Multiplizierer um 50 Prozent. Das spart Ressourcen und Energie. In einem 18×19-Multiplizierer kann eine vollständige 18+18-Addition untergebracht werden, einschließlich Vorzeichen-Bits. Interne Koeffizienten-Bänke ermöglichen eine höhere Rechenleistung bei der Multiplikation und sparen Logik-Ressourcen. Die DSP-Blöcke in den Arria V- und Cyclone V-FPGAs sind für FIR-Filter optimiert. Die vorhandenen Feedback-Register ermöglichen die Implementierung von zwei unabhängigen seriellen Filterkanälen pro DSP-Block. Außerdem steht die industrieweit erste Gleitkomma-Funktion in einer FPGA-Architektur zur Verfügung.

Welche Genauigkeit DSP-Blöcke aufweisen müssen, hängt von der Applikation ab. Video-Applikationen nutzen Multiplizierer mit Genauigkeiten zwischen 9×9 und 18×18. Drahtlose und medizinische Applikationen stellen wiederum höhere Anforderungen an die Genauigkeit, das gilt insbesondere, wenn komplexe Filter mit mehreren Kanälen implementiert werden, bei denen die Datengenauigkeit nach jeder Filterstufe erhalten bleiben muss. Militärische, Test- und Hochleistungs-Computing-Anwendungen treiben die Anforderungen an die Rechenleistung und die Genauigkeit ebenfalls nach oben. Manchmal sind zur Implementierung komplexer Matrix-Operationen und Signalumwandlungen auch Gleitkommarechnungen mit einfacher oder doppelter Genauigkeit notwendig.

Die DSP-Architektur der Arria V- und Cyclone V-FPGAs mit 28-nm-Strukturen ist dahingehend optimiert, dass sie sowohl hohe Rechenleistung als auch variable Datengenauigkeiten ermöglichen. Dadurch sind flächen- und energieeffiziente Implementierungen von Fest- und Gleitkommaoperationen möglich.

DSP-Anwendungen mit hoher Genauigkeit

Viele topaktuelle Anwendungen benötigen hochleistungsfähige DSP-Designs, die eine Genauigkeit von mehr als 18 Bit unterstützen. „Genauigkeit“ bezieht sich in diesem Zusammenhang auf die Größe eines Multiplizierers, beispielsweise 9×9, 12×12, 18×18, 27×27 usw. Im engeren Sinne steht die Genauigkeit für die Datenbreite eines jeden Operanden, der im Multiplizierer verarbeitet wird.

Viele traditionelle DSP-Funktionen wie FIR-Filter, FFTs und Datenpfade für eine kundenspezifische Signalverarbeitung benötigen eine hohe Genauigkeit. Diese Funktionen werden typischerweise in militärischen, medizinischen und drahtlosen Systemen verwendet. Sind Designs mit einer Genauigkeit von mehr als 18 Bit erforderlich, können Entwickler eine Signalverarbeitung mit Gleitkommazahlen implementieren. Dazu zählen militärische Radaranlagen mit Space-Time-Adaptive-Processing-Funktion (adaptiver Raum-Zeit-Verarbeitung) oder die MIMO-Technik in LTE-Channel-Karten. Mit der 28-nm-Siliziumarchitektur von Altera wurde indus-trieweit zum ersten Mal eine DSP-Architektur eingeführt, die eine variable Genauigkeit zulässt. Dadurch können Entwickler die Genauigkeit eines jeden DSP-Blocks perfekt an die Anforderungen ihrer eigenen Applikation anpassen.

Mithilfe der DSP-Blöcke mit variabler Genauigkeit in den Arria V- und Cyclone V-FPGAs können Entwickler eine einfache 9×9-Genauigkeit auswählen, um z.B. ein Design zur Verarbeitung von Videosignalen zu implementieren. Sie können mit denselben Blöcken aber auch ein Design mit Gleitkommagenauigkeit implementieren, wie sie für fortschrittliche Radar-Designs notwendig sind. Entwickler können die Genauigkeit eines jeden DSP-Blocks individuell festlegen, wodurch das Design an steigende Datenbreiten und Genauigkeiten im DSP-Pfad effektiv angepasst werden kann. Außerdem sind die DSP-Blöcke der Arria V- und Cyclone V-Bausteine rückwärtskompatibel zu allen Modi, die die früheren 65- und 40-nm-FPGAs von Altera unterstützen.

Bild 1: Die DSP-Blöcke in den Arria V-, Cyclone V- und Stratix V-FPGAs bietet zwei Genauigkeits-Modi.

Bild 1: Die DSP-Blöcke in den Arria V-, Cyclone V- und Stratix V-FPGAs bietet zwei Genauigkeits-Modi.Altera

Bild 1 gibt die geforderten Genauigkeiten für Multiplizierer in den verschiedenen FPGA-Märkten und die unterstützten Multiplizierer-Genauigkeiten in den DSP-Blöcken der Arria V-Bausteine wieder. Ein DSP-Block auf dem Arria V-Baustein unterstützt fast alle Genauigkeitsniveaus, die von diesen Anwendungen gefordert werden.

Modi mit variabler Genauigkeit

Die DSP-Blöcke aus den Arria V-, Cyclone V- und Stratix V-FPGAs sind die ersten, die zwei systemeigene Genauigkeitsmodi bieten (Bild 1). So gibt es einen 18-Bit- und einen High-Precision-Modus für 27×27-Multiplikationen. Entwickler können einen 18×36-Multiplizierer implementieren, indem sie einen DSP-Block plus zusätzliche Logik außerhalb des DSP-Blocks nutzen. Ähnliches gilt, will man einen 36×36-Multiplizierer oder einen 54×54-Multiplizierer implementieren. Im ersten Fall nutzt man zwei DSP-Blöcke plus zusätzliche Logik, im zweiten Fall vier DSP-Blöcke plus zusätzliche Logik.

Der Hauptvorteil der variablen Genauigkeit liegt darin, dass jeder Block für sich effizient implementiert werden kann. Hinzu kommt bei den DSP-Blöcken der Arria V-Bausteine, dass sie im Vergleich zu konkurrierenden Architekturen die höchste Anzahl an Multiplizierern mit unterschiedlichen Genauigkeiten bieten.

Die Architektur der DSP-Blöcke wurde von Altera mit jeder Prozessgeneration verbessert. Dabei wurde aber nie die Rückwärtskompatibilität infrage gestellt und trotzdem neue Funktionen realisiert, die auch die neueste Generation von DSP-Designs unterstützen. Die 28-nm-DSP-Blöcke mit variabler Genauigkeit, wie sie in den Arria V- und Cyclone V-Bausteinen realisiert sind, sind ebenfalls zu den früheren Bausteingenerationen kompatibel. Gleichzeitig ermöglichen sie eine Signalverarbeitung mit deutlicher höherer Genauigkeit. Denn die Architektur dieser DSP-Blöcke wurde so verbessert, dass sie höchste Rechenleistung und höchste Genauigkeit in DSP-Applikationen ermöglichen. So weisen die DSP-Blöcke in den Arria V- und Cyclone V-FPGAs unter anderem folgende Verbesserungen auf:

  • Voraddierer (Preaddierer)
  • 18×19-Multiplizierer
  • Koeffizienten-Bank
  • Feedback-Register
  • außerdem unabhängige Multiplizierer.

Gleitkommagenauigkeit

Je nach Anwendungen können Gleitkommamultiplikationen mit einfacher oder doppelter Genauigkeit erforderlich sein. DSP-Blöcke aus den Arria V- und Cyclone V- FPGAs unterstützen beides.

Die Gleitkommazahlendarstellung nach dem IEEE Standard 754 ist das häufigste Format von Gleitkommazahlen. In diesem Format sind Gleitkommazahlen mit einfacher Genauigkeit 32 Bit (24 Bit breite Mantisse) und bei doppelter Genauigkeit 64 Bit breit (53 Bit breite Mantisse).

Bild 2: Gleitkomma-Multiplikation mit einfacher Genauigkeit.

Bild 2: Gleitkomma-Multiplikation mit einfacher Genauigkeit.Altera

Gleitkommarechnungen bestehen aus der Multiplikation der Mantissen und der Addition der Exponenten. Mit der variablen DSP-Architektur können Multiplikationen von Mantissen für Gleitkommazahlen mit einfacher und doppelter Genauigkeit mithilfe eines einzigen Blocks durchgeführt werden.

Gleitkommamultiplikation mit einfacher Genauigkeit

Wird der High-Precision-Modus genutzt, so eignet sich der variable DSP-Block hervorragend für die Implementierung von Gleitkommaoperationen einfacher Genauigkeit (Bild 2). Die Multiplikation der Mantissen kann mit nur einem einzigen DSP-Block, der im High-Precision-Modus konfiguriert ist, implementiert werden. Diese sehr effiziente Nutzung der Ressourcen in einem FPGA ist neu. Bisher mussten Entwickler mehrere Blöcke kaskadieren, um diese Operation zu implementieren. Die Koeffizienten können intern oder extern abgelegt werden. Konkurrierende DSP-Architekturen mit einer 18×25-Bit-Auflösung brauchen mehrere Blöcke sowie externe Logik, um eine Mantissenmultiplikation bei Gleitkommarechnungen durchzuführen, was zu einer niedrigeren Rechenleistung und einer höheren Leistungsaufnahme führt.

Bild 3: Anforderungen an die DSP-Genauigkeit in unterschiedlichen Anwendungen.

Bild 3: Anforderungen an die DSP-Genauigkeit in unterschiedlichen Anwendungen.Altera

Gleitkommamultiplikationen mit doppelter Genauigkeit

Für die Multiplikation von Mantissen bei Gleitkommarechnungen mit doppelter Genauigkeit sind vier DSP-Blöcke notwendig, die alle kaskadiert werden können, und zwar über einen dedizierten 64-Bit-breiten Kaskaden-Bus im DSP-Block. Das ist ebenfalls das erste Mal, dass dies mit einem FPGA möglich ist, denn in konkurrierende Architekturen müssen für Mantissenmultiplikationen mit einfacher Genauigkeit schon zwei 18×25-Blöcke kaskadiert werden. Um einen 54×54-Mantissen-Multiplizierer mit doppelter Genauigkeit zu implementieren, sind sogar bis zu neun Blöcke plus zusätzlicher Logik notwendig.