Aufbau einer FPGA-basierten Co-Prozessorkarte

Co-Prozessoren erlauben komplexe, dedizierte Berechnungen und entlasten den Hauptprozessor. Dank der FPGA-Technik lassen sich heutzutage Co-Prozessorsysteme entwickeln, die gezielt zur Laufzeit den Anforderungen angepasst werden können. Im Folgenden wird eine FPGA-basierte Hardware-Plattform...

Co-Prozessoren erlauben komplexe, dedizierte Berechnungen und entlasten den Hauptprozessor. Dank der FPGA-Technik lassen sich heutzutage Co-Prozessorsysteme entwickeln, die gezielt zur Laufzeit den Anforderungen angepasst werden können. Im Folgenden wird eine FPGA-basierte Hardware-Plattform vorgestellt, die über eine PCI-Schnittstelle universell einsetzbar ist und als Grundlage für beliebig große FPGA-Netzwerke dienen kann.

Für die Berechnung komplexer Algorithmen gewinnt Hardware-Beschleunigung zunehmend an Bedeutung, wobei FPGAs aufgrund steigender Integrationsdichten und sinkender Preise verstärkt Einsatz finden. FPGA-basierte Systeme zeichnen sich aufgrund ihrer Rekonfigurierbarkeit und der Möglichkeit massiver Parallelisierung durch hohe Flexibilität und enorme Leistungsfähigkeit aus. Durch Vernetzung mehrerer FPGAs zu Netzwerken können parallelisierbare Algorithmen bestmöglich verteilt werden, um höchste Rechenleistung zu erzielen.

Reine FPGA-Logik hat jedoch den Nachteil, dass die internen Logikzellen mit großem Routing-Aufwand verknüpft werden und dadurch im Vergleich zu einer festverdrahteten, dedizierten Hardware-Schaltung nur mit wesentlich geringeren Taktraten betrieben werden kann. FPGA-Hersteller versuchen zunehmend, diesen Nachteil durch Kombination der flexiblen FPGA-Technologie mit häufig benötigter schneller Hardware-Logik zu kompensieren – und somit von den Vorteilen beider Technologien zu profitieren. Die Firma Xilinx [1] erweitert beispielsweise die FPGAs der Virtex-Familie mit vom Anwender häufig geforderten Hardware-Cores wie Embedded-PowerPC-Kernen, Multiplizierern, DSP-Blöcken, seriellen Hochgeschwindigkeits-I/O-Transceivern oder Ethernet-Cores.

Mit derartig verbesserten FPGAs und gezielter Parallelisierung lassen sich sehr leistungsfähige Systeme bauen, welche im Vergleich zu reinen CPU-basierten Systemen nur einen Bruchteil des Platz- und Energiebedarfs benötigen. Die Leistungsfähigkeit von FPGA-und Prozessornetzwerken wird direkt durch die Übertragungsgeschwindigkeit der Kommunikationskanäle zwischen den Knoten bestimmt. In den letzten Jahren ist selbst auf Boardlevel-Ebene der Trend zur seriellen Hochgeschwindigkeits-Datenübertragung zu beobachten (z.B. PCI-Express), da parallele Bussysteme in ihrer Leistungsfähigkeit an die physikalischen Grenzen gestoßen sind. Die FPGA-Hersteller unterstützen diesen seriellen Systementwurf durch integrierte schnelle Serialisierer/Deserialisierer (SERDES) mit Übertragungsraten von mehr als 3 Gbit/s (Xilinx nennt diese RocketIO, Altera HSSIO).

Die Vorteile der differenziellen seriellen Übertragung sind die Robustheit gegenüber äußeren Störeinflüssen, weniger Ausgangstreiber, geringere Leistungsaufnahme, geringerer Platzbedarf auf der Leiterplatte und die Vermeidung von Zeitversätzen (Clock-Skews) durch die Rekonstruktion des Systemtaktes aus dem Datenstrom (10B/8B-Codierung).

Dies bedeutet, dass die Leitungen als Impedanzleitungen ausgelegt und entsprechend ihrer Impedanz abgeschlossen werden müssen. Der Virtex II Pro unterstützt serielle, parallele sowie differenzielle Terminierung auf dem Chip mittels zuschaltbarer Terminierungswiderstände (Digital Controlled Impedance, DCI) und vermeidet dadurch kostbaren Platz auf der Leiterplatte durch diskrete Widerstände. Die Dimensionierung der Impedanzleitungen sollte dabei dem Leiterplattenhersteller überlassen werden, da nur dieser das genaue Fertigungsverfahren und die endgültigen Leitungsabmessungen genau kennt und die tatsächliche Impedanz anschließend mit einer Messung verifizieren kann. Von der Verwendung von Faustformeln zur Bestimmung der Impedanzen wird hingegen abgeraten. Insbesondere die Leitungen der RocketIO-Transceiver wurden mit größter Sorgfalt geroutet und zusätzlich mit dem Software-Tool HyperLynx 7.5 von Mentor Graphics im Vorfeld simuliert.

Lagenwechsel von Signalleitungen erzeugen zwangsläufig Impedanzsprünge und führen somit zu ungewollten Reflexionen, welche die Signalintegrität verschlechtern. Bei den kritischen Signalleitungen (Taktleitungen, RocketIO- und Speicheranbindungen) sollten daher Lagenwechsel explizit unterbunden werden. Dies führt zu einer starken Einschränkung der Freiheitsgrade des Autorouters, und mit der zusätzlichen Forderung der Längenanpassung ganzer Signalgruppen ist der ansonsten sehr leistungsstarke Autorouter von Mentor Graphics Expedition PCB stark überfordert: Alle kritischen Leitungen müssen daher per Hand geroutet werden. Die beschriebene Platine wird derzeitig sowohl als Co-Prozessorkarte zur Implementierung eines genauen, dezimalen Gleitkomma-Prozessors als auch als Baustein eines FPGA-Netzwerks eingesetzt, in dem zur schnellen Berechnung von DSP-Algorithmen serielle Datenflussarchitekturen implementiert werden. fr