Einführung in das Peer-to-Peer-Datenstreaming

Inhalt

Einführung in das Peer-to-Peer-Datenstreaming

Die NI-Peer-to-Peer-Streaming-Technologie (P2P) nutzt PCI Express für den direkten Punkt-zu-Punkt-Datentransfer zwischen mehreren Messgeräten, ohne dass Daten über den Host-Prozessor oder -Speicher gesendet werden. Dadurch sind Geräte in einem System in der Lage, Informationen auszutauschen, ohne andere Systemressourcen zu beanspruchen. Die NI-P2P-Technologie wird von NI-FlexRIO-FPGA-Modulen für PXI Express (NI PXIe-7961R, PXIe-7962R und PXIe-7965R) sowie Digitizern und Vektorsignalanalysatoren für PXI Express, u. a. NI PXIe-5122, PXIe-5622 und PXIe-5663, unterstützt.

In dem in Abbildung 1 dargestellten System nutzt der Digitizer NI PXIe-5622, der sich in einem NI-PXIe-1075-Chassis befindet, Peer-to-Peer-Datenstreaming, um Daten direkt an das NI-FlexRIO-FPGA-Modul NI PXIe-7965R zu senden. Das FPGA-Modul sendet die Daten anschließend an ein anderes FPGA-Modul für die weitere Verarbeitung. Da in der Backplane des Chassis bereits eine direkte Verbindung der einzelnen Modulsteckplätze vorliegt, ist es nicht notwendig, Daten über den Host-Controller oder andere Systemressourcen wie den CPU oder Host-Speicher zu übertragen.

Abb. 1: Ein Digitizer NI PXIe-5622 überträgt Daten per Streaming an zwei NI-FlexRIO-FPGA-Module für PXI Express.

Anwendungsbeispiel

In RF-Anwendungen wird häufig ein Echtzeit-Frequenzbereichstrigger benötigt. Die meisten RF-Messgeräte triggern über einen frequenzunabhängigen Leistungspegel. Mit P2P-Datenstreaming und -Verarbeitung mithilfe des NI LabVIEW FPGA Module lassen sich jedoch Frequenzbereichstrigger erstellen. In der in Abbildung 2 dargestellten Anwendung nutzt der Vektorsignalanalysator NI PXIe-5663 P2P-Datenstreaming, um Daten an das NI-FlexRIO-FPGA-Modul zu senden, wo sie gefenstert, in den Frequenzbereich konvertiert und anschließend mit einer Maske verglichen werden. Überschreiten die Daten die Maske, löst das FPGA-Modul einen digitalen Trigger in der PXI-Backplane aus. Sobald der NI PXIe-5663 den Trigger empfängt, setzt er seinen normalen Erfassungsspeicher ein, um die Daten, einschließlich der Vortrigger-Samples, aufzuzeichnen. Auf die aufgezeichneten Daten kann dann mithilfe des NI-RFSA-Treibers vom Host aus zugegriffen werden, um die Daten weiterzuverarbeiten oder zu speichern.

Abb. 2: In dieser Anwendung fügt das NI-FlexRIO-FPGA-Modul dem Vektorsignalanalysator NI PXIe-5663 einen Frequenzbereichstrigger hinzu.

Programmierung von Peer-to-Peer-Systemen

Die Programmierung von Peer-to-Peer-Datenstreaming-Systemen wird durch den Treiber NI-P2P bedeutend vereinfacht. In Abbildung 3 sendet FPGA 1 Daten direkt an FPGA 2. In LabVIEW FPGA stellen die einfachen P2P-Lese/Schreibknoten eine FIFO-basierte Schnittstelle für den Datenaustausch zur Verfügung. Die Knoten ähneln dabei DMA- bzw. lokalen FPGA-FIFOs. Bevor ein Datenaustausch stattfinden kann, muss der Host den Schreib-Stream von FPGA 1 mit dem Lese-Stream von FPGA 2 verbinden. Dies geschieht über die APIs der Treiber NI-RIO und NI-P2P auf dem Host (siehe Abb. 3). Je nach Konfiguration sind nur ein oder zwei VIs nötig, um die Peer-to-Peer-Streams zu verbinden und somit Daten auszutauschen.

Abb. 3: Peer-to-Peer-Streaming zwischen zwei NI-FlexRIO-FPGA-Modulen und der zugehörigen Software

Leistungsbewertung von Peer-to-Peer-Systemen

Mit der NI-Peer-to-Peer-Technologie sind beim Datenstreaming Raten von mehr als 800 MB/s möglich. Der maximale Durchsatz ist dabei von den Streamingraten der Module, dem Chassis und dem u. U. eingesetzten Controller abhängig. Im Allgemeinen gibt dabei die niedrigste Streamingrate eines Teilnehmers die höchstmögliche P2P-Bandbreite vor.

Chassis

Um Daten von einem Modul auf ein anderes übertragen zu können, müssen alle Daten über die Backplane eines Chassis gesendet werden. Die PCI-Express-Schalter an der Chassis-Backplane routen die Daten durch das Chassis und stellen die Punkt-zu-Punkt-Verbindungen mit hoher Bandbreite zur Verfügung, die für das Peer-to-Peer-Datenstreaming notwendig sind. Sind dabei mehrere Module mit demselben PCI-Express-Schalter verbunden (siehe Abbildung 4), dann hängt die Bandbreite vom Schalter ab.

Abb. 4: Die Module im Chassis routen alle Daten über einen PCI-Express-Schalter.

Tabelle 1 enthält Angaben zu den maximalen Bandbreiten der PCI-Express-Schalter der jeweiligen Chassis. Die Bandbreite wird durch die Verbindung von zwei Steckplätzen mit demselben Schalter erreicht, wobei mehrere Verbindungen pro Schalter mit der gleichen Rate unterstützt werden.

 

Max. Peer-to-Peer-Rate
Chassis Steckplätze  
NI PXIe-1075 Alle >800 MB/s
NI PXIe-1082Q Alle >800 MB/s
NI PXIe-1065 7, 8 Abhängig vom Controller
NI PXIe-1065 9-14 Knapp unter 800 MB/s
NI PXIe-1062Q 3-5 Abhängig vom Controller

Tab. 1: P2P-Bandbreite von PXI-Express-Chassis

Controller

Sind die Module in einem P2P-Streamingsystem nicht mit dem gleichen PCI-Express-Schalter verbunden, werden die Daten über den Onboard-Schalter oder Chipset des Host-Controllers geleitet, jedoch nicht über den Host-CPU oder -Speicher. Abbildung 5 zeigt diese Konfiguration.

Abb. 5: Die Module im Chassis routen alle Daten über den Host-Controller.

Tabelle 2 enthält Angaben zu den maximalen Bandbreiten des Onboard-Schalters bzw. -Chipsets des jeweiligen Controllers. Die Zahlen repräsentieren dabei die Gesamtbandbreite über ein bestimmtes Segment. Existieren mehrere Peer-to-Peer-Streams über ein Segment, müssen sich diese die Bandbreite teilen.

 

Controller Max. Rate zwischen Schaltern Anmerkung
NI PXIe-8130 >600 MB/s Begrenzt durch Chipset
NI PXIe-8106 >800 MB/s Vierter Link nicht unterstützt (zum/vom am weitesten rechts gelegenen Schalter der Chassis NI PXIe-1075 und NI PXIe-1082)
NI PXIe-8105 Knapp unter 800 MB/s Begrenzt durch Schalter
NI PXIe-8101/02/08 Nicht unterstützt P2P hinter den Schaltern funktioniert
NI PXIe-8370 Knapp unter 800 MB/s Begrenzt durch Schalter
NI PXIe-8375 >800 MB/s  

Tab. 2: P2P-Bandbreite von PXI-Express-Controllern

Module

Unterstützt die Chassis-Controller-Konfiguration eine gewisse Bandbreite, bestimmen die PXI-Express-Module letztendlich die maximal erreichbare Bandbreite. Nachfolgend sind Leistungsangaben und Konfigurationsdetails für verschiedene P2P-fähige Geräte aufgelistet.

NI-FlexRIO-FPGA-Module NI PXIe-7965R, PXIe-7962R, PXIe-7961R: Diese NI-FlexRIO-FPGA-Module für PXI Express sind in der Lage, Daten mit mehr als 800 MB/s vom bzw. zum Modul zu streamen. Werden Daten simultan in beide Richtungen übertragen, erreichen die FPGA-Module Raten von mehr als 700 MB/s pro Richtung bzw. eine Gesamtdatenrate von mehr als 1,4 GB/s. Die Daten können dabei mit bis zu 16 Streams übertragen werden – ein Stream pro DMA-Kanal des Geräts. Die Anzahl der Streams sowie der jeweiligen Bandbreiten hängt von der Konfiguration und Programmierung des FPGAs des Geräts ab.

ZF-Digitizer NI PXIe-5622: Der NI PXIe-5622 ist ein Digitizer mit 16 bit und 150 MS/s, der Daten mit bis zu 300 MB/s erzeugen kann. Der Digitizer bietet für das P2P-Streaming einen Schreibendpunkt, der sich auf einem Datenpfad parallel zum Onboard-Speicher befindet. Die erfassten Daten können auf diesen Endpunkt geschrieben werden, um auf ein FPGA-Ziel oder – über den Onboard-Speicher – auf den Host übertragen zu werden. Ein wichtiges Merkmal des NI PXIe-5622 ist die Onboard-Signalverarbeitung mit Quadratur-Digitalabwärtswandlung, welche eine ZF-Bandbreite von bis zu 60 MHz in Form komplexer I/Q-Daten mit 75 MS/s bzw. 250 MB/s zur Verfügung stellt. In diesem Modus sind die Samples mit Samples des P2P-Streams verschachtelt, wobei das I-Sample vor dem Q-Sample stattfindet.

Abb. 6: Peer-to-Peer-Streaming mit dem ZF-Digitizer NI PXIe-5622

Peer-to-Peer-Daten werden im rohen Binärformat übertragen, welches keine Skalierung oder Kalibrierung enthält. Die Normalisierungskoeffizienten können über NI-SCOPE ermittelt und anschließend zur Kalibrierung der Binärdaten eingesetzt werden, ohne dass eine Skalierung in Volt notwendig ist. Die normalisierten Daten entsprechen dabei den nachfolgenden Kriterien, so dass die Binärdaten zu einem späteren Zeitpunkt ausgewertet oder in Volt skaliert werden können.

  • Der maximale positive Binärwert entspricht der maximalen positiven Spannung des vertikalen Bereichs.
  • Der maximale negative Binärwert entspricht der maximalen negativen Spannung des vertikalen Bereichs.
  • Der vertikale Bereich wird über die möglichen Binärwerte gleichmäßig aufgeteilt.

Alternativ können die Skalierungskoeffizienten so ermittelt und angewendet werden, dass Skalierung und Kalibrierung in einem Schritt durchgeführt werden können. Weitere Informationen erhalten Sie in der Hilfe zu Hochgeschwindigkeits-Digitizern.

Digitizer mit hoher Auflösung NI PXIe-5122: Der NI PXIe-5122 ist ein Digitizer mit zwei Kanälen, 14 bit und 100 MS/s, der Daten mit bis zu 200 MB/s pro Kanal und pro Stream erzeugen kann. Der Digitizer bietet für das P2P-Streaming zwei Schreibendpunkte, die sich auf Datenpfaden parallel zum Onboard-Speicher befinden. Die erfassten Daten können auf diese Endpunkte geschrieben werden, um über den Onboard-Speicher auf den Host übertragen zu werden.

Abb. 7: Peer-to-Peer-Streaming mit dem Digitizer mit hoher Auflösung NI PXIe-5122

Beispiele für gültige Streamingkonfigurationen sind in Tabelle 3 dargestellt:

Tab. 3: Gültige Streamingkonfigurationen

Es ist wichtig zu beachten, dass die Module so konfiguriert werden können, dass sie Daten mit höheren Raten erzeugen als die PXI-Express-x4-Bandbreite unterstützt, was zu einem Datenüberlauf führen kann. Die letzte Konfiguration in Tab. 3 erzeugt beispielsweise 400 MB/s pro Stream bei voller Sampling-Rate (800 MB/s gesamt). Werden dann noch Daten zum Host-PC gesendet, überschreitet das die Busbandbreite. Eine Maßnahme zur Verhinderung eines Datenüberlaufs ist dabei die Reduzierung der Sampling-Rate des Digitizers.

Peer-to-Peer-Daten werden im rohen Binärformat übertragen, welches keine Skalierung oder Kalibrierung enthält. Die Normalisierungskoeffizienten können über NI-SCOPE ermittelt und anschließend zur Kalibrierung der Binärdaten eingesetzt werden, ohne dass eine Skalierung in Volt notwendig ist. Die normalisierten Daten entsprechen dabei den nachfolgenden Kriterien, so dass die Binärdaten zu einem späteren Zeitpunkt ausgewertet oder in Volt skaliert werden können.

  • Der maximale positive Binärwert entspricht der maximalen positiven Spannung des vertikalen Bereichs.
  • Der maximale negative Binärwert entspricht der maximalen negativen Spannung des vertikalen Bereichs.
  • Der vertikale Bereich wird über die möglichen Binärwerte gleichmäßig aufgeteilt.

Alternativ können die Skalierungskoeffizienten so ermittelt und angewendet werden, dass Skalierung und Kalibrierung in einem Schritt durchgeführt werden können. Weitere Informationen erhalten Sie in der Hilfe zu Hochgeschwindigkeits-Digitizern.