Suchen

Datenpuffer in Highend-Routern Designvorteile von FIFOs und FPGAs nutzen

| Autor / Redakteur: Michael Olsen* / Jan Vollmuth

Bei Netzwerken an Metro-Grenzen entscheidet angesichts steigender Datenraten das Design der Datenpuffer über die optimale Netzwerkleistung. Nutzt man die Vorteile diskreter Standard-FIFOs und FPGAs, lassen sich hochleistungsfähige Pufferlösungen kostengünstig entwickeln.

Firmen zum Thema

Hoher Durchsatz: Der serielle Datenpuffer 80KSBR200 von IDT leistet 10 GBit/s mit einer Speicherzugriffsgeschwindigkeit von max. 90 MBit/s
Hoher Durchsatz: Der serielle Datenpuffer 80KSBR200 von IDT leistet 10 GBit/s mit einer Speicherzugriffsgeschwindigkeit von max. 90 MBit/s
( Archiv: Vogel Business Media )

Für Entwickler von Datenspeicher-Subsystemen stellt der Randbereich des Metropolitan-Area-Netzwerks (MAN) eine Herausforderung dar. In die Aufrüstung von Long-Haul- und regionalen Netzwerken sowie in den Kern der Metro-Netzwerke wurde kräftig investiert, die Randbereiche des Netzwerks wurden aber vernachlässigt.

Der wachsende Datenverkehr in das MAN erfordert Router, die mehrere eingehende 1-GBit/s-Leitungen in Datenströme mit Kapazitäten bis zu 40 GBit/s kumulieren. Um den Ausnutzungsgrad einer Leitung hoch zu halten, muss das System eine Paketverarbeitungsleistung bieten, die größer oder gleich der eingehenden Übertragungsrate auf der Ausgangsseite ist oder die Pakete stauen sich und eine Datenpufferung wird erforderlich.

Bildergalerie

Die Leistungsfähigkeit und Effizienz dieser Puffer ist dabei entscheidend. Die größte Gefahr für die Leistungsfähigkeit eines Netzwerks ist die erneute Übertragung von Daten. Router an der Metro-Grenze müssen daher mehrere Anschlussleitungen zusammenfassen und sie an den Highspeed-Kern ohne Buffer-Underrun weiterleiten. Sie müssen auch die Datenverteilung vom Kern an die Grenzen ohne Buffer-Overrun gewährleisten.

Größe der Datenpuffer ist entscheidend

Der Schlüssel für minimale Systemlatenzzeit und maximalen Datendurchsatz liegt in der korrekten Größe der Datenpuffer. Sind sie zu groß, erhöhen sich die Systemkosten. Sind sie klein, kommt es zu Buffer-Overruns und die Daten müssen erneut gesendet werden.

Drei wesentliche Faktoren beeinflussen die Systemeffizienz: die Datenrate eingehender Daten (Zugangsleitungen), die Datenrate der ausgehenden Leitungen und die erforderliche Zeit zur internen Datenverarbeitung. Immer wenn die Eingangsdatenmenge gleich der Ausgangsdatenmenge ist und die Anforderungen an die Datenverarbeitung minimal sind, können die Puffer relativ klein gehalten werden. Führt das System eine Datenverarbeitung in größerem Umfang durch, muss sich die Puffergröße erhöhen, um Latenzzeiten aufzufangen.

Diskontinuierlicher Verkehr (Bursts) kann die Datenpufferauslegung ebenfalls beeinflussen. Übersteigt die Eingangsdatenrate gelegentlich die Kapazität des Paketprozessors, muss der Entwickler den Eingangspuffer so anpassen, dass die dazugehörige Latenzzeit abgefangen wird.

FPGAs für Datenpuffersubsysteme

Da die meisten frisch ausgebildeten Ingenieure mit dem Einsatz von FPGAs vertraut sind, ziehen sie bei der Entwicklung von Datenpuffer-Subsystemen diese Bausteine in Erwägung anstatt auf diskrete Standardspeicher zurückzugreifen. FPGAs bieten zahlreiche Vorteile: sie sind hochflexibel, bieten die einzigartige Möglichkeit, verschiedene Designoptionen verifizieren zu können und ermöglichen das schnelle Testen der Hardware-Implementierung. Da die Tools dazu meist auch bekannt sind, verkürzt sich die Entwicklungsdauer.

Da die FPGA-Dichte immer mehr zunimmt, beschleunigt sich dieser Trend. FPGAs bieten Millionen von Logikgattern und MBits Speicher auf dem Chip, sodass Entwickler auf einem einzigen Baustein die Funktionalität mehrerer FIFOs zusammenlegen können (Bild 1).

Da an der Metro-Grenze die Pufferanforderungen jedoch sehr hoch sind, müssen sämtliche Designoptionen überprüft werden: es könnte sich herausstellen, dass die FPGA-typischen Leistungs- und Kosteneinschränkungen diskrete Lösungen attraktiver erscheinen lassen.

FPGA-Lösungen variieren stark

Eine FPGA-basierte Lösung kann abhaengig von der Puffergröße erheblich variieren. Da FPGAs mit immer höheren Taktraten arbeiten und Entwickler mehrere FIFOs in ein FPGA mappen, kann es zu Leistungseinschränkungen kommen. Entwickler nutzen zum automatischen Mapping mehrerer FIFOs in einen physikalischen Speicherblock meist die Tools des FPGA-Anbieters und entwickeln damit auch die Logik, die erforderlich ist, um zwischen den verschiedenen FIFOs hin- und herzuschalten (Multiplex).

Die Betriebsfrequenz eines jeden FIFO-Ports ist jedoch umgekehrt proportional zur Anzahl der FIFOs, da jeder FIFO unabhängig arbeitet und die Gesamtbandbreite somit aufgeteilt wird. Einige FPGA-Anbieter empfehlen nun, dass ihre Bauteile nicht in mehr als zehn FIFOs partitioniert werden sollen.

Auch die Speicherdichte beeinflusst die Leistungsfähigkeit des FPGAs. Für maximale Leistungsfähigkeit bevorzugen es die Entwickler, die Datenpuffer in Reihe zu halten und entscheiden sich somit, die Speicheranforderungen eines größeren Datenpuffers mit einem höher integrierten FPGA zu erfüllen.

Dabei ergeben sich jedoch Probleme. Wird in FPGAs viel Speicher implementiert, ist ein Teil des Speichers weiter von den I/O- und Logikgattern entfernt. Dies führt zu internen Schreibpulsen mit unterschiedlicher Länge und längeren Set-Up Zeiten. Größere Speicher-Arrays in einem FPGA können die interne Geschwindigkeit des Chips um bis zu 40% senken.

I/O-Einschränkungen bei FPGAs provozieren Latenzprobleme

Alternativ lässt sich ein kleineres und kostengünstigeres FPGA für die Steuerlogik verwenden, das über externe Speicher unterstützt wird. Entwickler erhöhen die FPGA-Speicherkapazität meist durch externes SRAM. Für das externe Speichermanagement bieten FPGA-Anbieter vordefinierte Blöcke an

Die I/O-Einschränkungen bei FPGAs können allerdings erhebliche Latenzprobleme verursachen. Durch die hohe Anzahl an Zugriffen auf das FPGA und den externen Speicher benötigt dieses Subsystem zur Bearbeitung jedes Bytes bis zu acht Taktzyklen.

Oftmals ist hier der Einsatz von Standard-FIFOs (Bild 2) praktikabler. Die Leistungsfähigkeit dieser Bausteine hat sich in der letzten Zeit erheblich verbessert: Die Eingangs- und Ausgangs-Ports lassen sich meist unabhängig für den SDR-(Single Date Rate) oder DDR-(Double Date Rate)-Datentransfer konfigurieren.

Einige FIFOs lassen sich kaskadieren, um somit in Multichip-Konfigurationen eine höhere Speicherdichte zu bieten. Unterschiedliche Timing-Modi helfen in solchen kaskadierten Konfigurationen bei der Designoptimierung.

Als Alternative zu FPGAs mit mehreren FIFOs auf einem Chip bieten Hersteller diskreter Standard-Puffer-ICs FIFOs an, die Daten bei vollem Ausnutzungsgrad der Leitung über bis zu 128 Queues isolieren und priorisieren. Diese bieten bis zu 10 MBit Speicher und Highspeed-Betrieb.

Standard-FIFO kontra FPGA

Vor der Entscheidung, ein Datenpuffer-Subsystem auf der Basis von Standard-FIFOs oder FPGAs zu entwickeln, sollten Entwickler den Einfluss auf die Komplexität des Designs berücksichtigen. Bei niedrigerer Kapazität ermöglichen FIFOs und Steuerlogik auf einem Baustein ein elegantes und einfaches Board-Design.

Übersteigen die Puffergrößen eine Kapazität von 256 KBit und erfordern Kostenerwägungen den Einsatz von SRAM neben dem FPGA, bieten Standard-FIFOs in einem In-Line Datenpuffer meist einen einfacheren Ansatz. Weitere Vorteile ergeben sich durch das einfachere Aufrüsten auf mehr Speicher.

Die Taktsynchronisierung in einem asynchronen Design muss mit berücksichtigt werden. Bei den meisten Routern laufen die eingehenden Übertragungsleitungen und der Takt des Hauptsystems in unterschiedlichen Taktdomänen. Oft müssen auch Busse unterschiedliche Breite überbrückt werden.

FPGA-Anpassung erfordert Knowhow

Entwickler mit einem FPGA-basierten Ansatz können ihre Logik entsprechend diesen Anforderungen anpassen. Dazu ist aber sehr viel Erfahrung nötig sowie Zeit zum Simulieren und Testen des Schaltkreises. Im Gegensatz dazu bieten viele hochleistungsfähige FIFOs integrierte Eigenschaften zur Busanpassung.

Auch die Bauteilkosten und der Platzbedarf auf der Leiterplatte sind entscheidend. Eine Analyse der Kosten pro Speicherbit bei FIFOs und FPGAs ergab, dass die Speicherkosten bei beiden Technologien bis zu einem Wert von 256 KBit ungefähr gleich sind (Bild 3).

Die Kosten pro Bit bei FIFOs nehmen jedoch mit steigender Dichte ab, während sie bei FPGAs rapide zunehmen. Bei Speicherdichten über 1 MBit wird FPGA-Speicher unerschwinglich teuer.

Die Gehäuseabmessungen und der Design-Footprint spielen ebenfalls eine wichtige Rolle. Bei geringer Dichte bietet die Integration des Pufferdesigns in ein FPGA den kompaktesten Footprint. Da die FPGA-Dichte und die Anschlusszahl der Gehäuse weiter zunehmen, ist eine Abwägung schwer zu treffen. Die Implementierung eines Datenpuffers in ein großes FPGA mit 8M Gattern zwingt Entwickler dazu, ein 1152-poliges BGA auf dem Board zu montieren. FIFOs sind dagegen stets im gleichen 256-poligen BGA erhältlich – unabhängig von ihrer Speicherdichte.

Geschicktes Design ermöglicht kostengünstige Lösungen

Netzwerke an der Metro-Grenze unterliegen derzeit einem massiven Wandel. Da die Datenraten immer weiter zunehmen, ist das Design der Datenpuffer entscheidend für eine optimale Leistung des Netzwerks. Ziehen Entwickler sämtliche Designoptionen in Betracht und nutzt sie geschickt die Vorteile diskreter Standard-FIFOs und FPGAs, können sie hochleistungsfähige Lösungen zu geringst möglichen Kosten entwickeln.

Baustein für DSP-intensive Wireless Services

Mobile Services wie z.B. mobile Video sind für Netz-Provider und Content-Anbieter lukrative Geschäftsmodelle. Damit müssen Handy-Basisstationen einen entsprechend hohen Datendurchsatz leisten. Voraussetzung dafür sind schnelle serielle Datenpuffer wie der 80KSBR200 von IDT: Er leistet 10 GBit/s mit einer Speicherzugriffsgeschwindigkeit von bis zu 90 MBit/s und ist eine der ersten Speicherlösungen auf Basis der Serial-RapidIO-Architektur. In Kombination mit einem Pre-Processing-Switch von IDT kann der Baustein dank optimierter Verbindungen die DSP-Performance (Digitaler Signalprozessor) um bis zu 20% steigern. Der 80KSBR200 hebt diverse Beschränkungen hinsichtlich Speicherkapazität und Leistung auf und ermöglicht die Verarbeitung großer aufeinander folgender Datenmustervergleiche in Echtzeit. Dafür benötigt er lediglich 16 I/Os – anstatt 100 wie bei paralleler Verarbeitung. Der serielle Datenpuffer ist in einem BGA-Gehäuse mit 484 Anschlüssen untergebracht. Der Wireless-Chipsatz arbeitet mit DSPs und CRPs (Chipraten-Prozessoren) verschiedener Hersteller zusammen.

*Michael Olsen, Director Product Marketing, IDT

(ID:204456)