Academic Über NI Veranstaltungen NI Developer Zone Support Lösungen Online Store Kontakt MyNI

Dokumententyp: Tutorium
Von NI unterstützt: Ja
Veröffentlichungsdatum: 03.12.2008


Feedback


Ja Nein

Thematisch verwandte Links - Developer Zone

Thematisch verwandte Links - Products and Services

Hochgeschwindigkeits-Datenstreaming: Programmierung und Benchmarks

0 Bewertung(en) | 0.00 von 5
Sprache | Drucken | PDF

Übersicht

PXI Express verändert die Art und Weise, wie Ingenieure Systeme entwerfen. Dieses Dokument behandelt die Technologie, die Daten-Streaming mit hohen Geschwindigkeiten ermöglicht und so zur Maximierung der Leistung des Streamings im System beiträgt. U. a. wird untersucht, welche maximalen Datenraten erreicht werden können, wenn Daten auf Festplatten oder anderen Speichermedien abgelegt werden.

Einleitung

„Streaming“ ist der Prozess der Datenübertragung zu oder von einem Messgerät bei einer so hohen Übertragungsrate, dass eine kontinuierliche Erfassung oder Erzeugung aufrechterhalten werden kann. Das bedeutet, dass die Leistung von Streaming-Anwendungen immer durch die Größe und die Geschwindigkeit der zu übertragenden Daten begrenzt wird. Viele Ingenieure nutzen „Streaming“, jedoch können Daten für viele Anwendungen immer noch nicht schnell genug erzeugt oder erfasst werden. In diesem Fall müssen Anwender einen Kompromiss eingehen und eine Abtastrate verwenden, die langsam genug ist, um Daten über den Bus übertragen zu können oder Daten über kurze Zeiträume mit der erforderlichen hohen Rate abzutasten, die der integrierte Gerätespeicher noch zulässt. Natürlich sind solche Kompromisse nicht wünschenswert.

Bei herkömmlichen Messsystemen für den Prüfplatz wie etwa Oszilloskopen, Logikanalysatoren und Signalgeneratoren ist die Fähigkeit zum Daten-Streaming nur begrenzt. Obwohl viele Messgeräte sehr schnelle Abtastraten und hohe Bandbreiten bieten, wird der Bus oft übersehen, der die Schnittstelle zum PC bietet, um die Daten für den Anwender verfügbar zu machen, obwohl er die Prüfzeit positiv beeinflussen kann. Die meisten Erfassungsvorgänge mit Stand-alone-Oszilloskopen sind beispielsweise zeitlich begrenzt. Die Dauer der Erfassung wird vom verfügbaren Onboard-Speicher des Oszilloskops vorgegeben (ein Stand-alone-Signalgenerator besitzt dieselbe Einschränkung, jedoch wird das Signal zur Erzeugung auf den Onboard-Gerätespeicher geladen). Nach Abschluss der Erfassung werden die Daten über Ethernet oder GPIB  zum PC übertragen. Ein mögliches Beispiel dafür wäre die Datenübertragung mit 1 GS/s nach einem Triggersignal. Besitzt das Gerät einen integrierten Speicher von 256 MB pro Kanal, wäre der Speicher voll und die Erfassung würde nach ca. 250 ms beendet. Nutzt das Gerät den GPIB-Bus (dessen Bandbreite ca. 1 MB/s beträgt), muss der Anwender fast 4,5 Minuten (250 s) warten, bis seine Daten für die Analyse zum Computer übertragen werden. Dies kann mit einem Digitizer/Oszilloskop von NI mit derselben Abtastrate und demselben Onboard-Speicher verglichen werden: Die gleiche Datenübertragung über den PCI/PXI-Bus würde weniger als 3 Sekunden in Anspruch nehmen. Das entspricht einer Verbesserung um das 80fache! Die Bussysteme PCI Express und PXI Express ermöglichen noch schnellere Übertragungsraten.

Streaming-Technologie

PXI Express basiert auf der PCI-Express-Technologie und teilt jedem Gerät eine dedizierte Bandbreite zu. PCI Express ist mit x1-, x4-, x8- und x16-Lanes („mal 1“, „mal 4“ usw.) erhältlich und bietet bei sehr geringer Latenz einen Durchsatz von 250 MB/s pro Lane. Die x1- und x4-Verbindungen werden häufig für Hardware der Messgeräteklasse verwendet und bieten einen dedizierten Durchsatz von 250 MB/s bzw. 1 GB/s (vier Lanes zu je 250 MB/s). So erhöht sich der gesamte Systemdurchsatz mit wachsender Zahl an Messgeräten in einem Chassis. Unten stehende Abbildung veranschaulicht Bandbreite und Latenz verschiedener Bussysteme. Die Latenz ist die Verzögerung, die bei der Datenübertragung entsteht. Sie gerät bei der Planung des Systemdesigns oftmals in Vergessenheit. Viele Anwender erkennen zwar, dass eine höhere Bandbreite wünschenswert wäre, jedoch kann eine größere Latenz die Prüfzeiten auch negativ beeinflussen und sollte beim Systemdesign in Betracht gezogen werden.

Abbildung 1: Gegenüberstellung von Bandbreite und Latenz von gängigen Gerätebussen

Die PXI-Plattform basiert auf den Bussen PCI und PCI Express, die beide eine hohe Bandbreite bereitstellen. Deshalb können mit PXI Daten auch von und zu anderen Quellen als dem integrierten Speicher übertragen werden. Ein Digitizer/Oszilloskop  auf Basis von PXI/PXI Express kann Daten kontinuierlich mit einer hohen Abtastrate erfassen, da die hohe Bandbreite des Busses die Echtzeit-Datenübertragung auf PC-Speicher oder -Festplatte mit bis zu 1 GB/s erlaubt. Das bedeutet, dass Daten abgerufen werden können, bevor sie im Gerätespeicher überschrieben werden.

Das begrenzende Element für die Erfassung und Erzeugung ist nicht mehr der Bus, sondern die Dauer des Lese- und Schreibvorgangs für die Daten vom bzw. auf den Systemspeicher – einer Festplatte oder sogar einem RAID-Array. Dies bedeutet wiederum, dass Anwender Daten über lange Zeiträume hinweg mit der erforderlichen hohen Abtastrate erfassen oder generieren können, ohne Verluste bei Abtastrate oder Prüfzeiten hinnehmen zu müssen. Beispielsweise können mit einem Digitizer des Typs PXIe-5122  und einem RAID-Array mit 12 Festplatten und einer Kapazität von 4 TB Daten mit der maximalen Abtastrate von 100 MS/s auf beiden simultan abgetasteten Kanälen über mehr als 2,5 Stunden hinweg erfasst werden.

Was bedeutet das alles? Viele Herausforderungen waren bisher unlösbar, weil sie äußerst kostspielige proprietäre Systeme erforderten. Mit der kommerziellen Technologie PXI Express lassen sich jedoch auch solche Hindernisse überwinden. Zu möglichen Anwendungen zählen RF/IF-Daten-Streaming für die Informationsgewinnung aus Signalen, Datenaufzeichnung und -generierung, Erzeugung/Streaming digitaler Videosignale für Tests von Bildsensoren und Displays sowie weitere Anwendungen mit hohem Datendurchsatz.

Optimale Vorgehensweise bei Stream-to-Disk-Anwendungen

Multithreading-Architekturen stellen Programmierer vor große Herausforderungen. LabVIEW  bietet eine ideale Programmierumgebung für Multicore-Prozessoren, da LabVIEW Anwendungen schon von Natur aus Multithreading-fähig sind. Deshalb können LabVIEW Programmierer auch ohne oder mit wenig zusätzlichem Programmcode von Multicore-Prozessoren profitieren. Die größten Vorteile bieten Multithreading-fähige Anwendungen für parallele Prüf- und Stream-to-Disk-Anwendungen, wobei eine sorgfältige Programmierung von Streaming-Anwendungen die maximale Leistung aus PXI-Express-basierten Messgeräten herausholt. Dies wird durch die Parallelität des Programmcodes erreicht.

Die gleichen Regeln der Parallelität gelten, wenn bei der Erstellung von Anwendungen für das Daten-Streaming auf Festplatte die bestmögliche Leistung der Computerprozessoren erzielt werden soll. Bei einer Streaming-Anwendung beanspruchen folgende Aufgaben Bus und Prozessor am meisten: 1) die Datenerfassung vom Digitizer und 2) das Schreiben von Daten in eine Datei. Da dies schon im Vorfeld bekannt ist, können Prozesse auf mehrere Schleifen aufgeteilt werden. Allgemein wird dies als Erzeuger-Verbraucher-Modell bezeichnet, welches einen gepufferten Datenaustausch zwischen den Schleifen ermöglicht.


 
  
[+] Enlarge Image

Abbildung 2: Erzeuger-Verbraucher-Schleifenarchitektur

Im obigen Beispiel erfasst die obere Schleife (Erzeuger) Daten von einem Hochgeschwindigkeits-Digitizer und gibt sie an einen Pufferspeicher weiter. Die untere Schleife (Verbraucher) liest die Daten aus dem Puffer und schreibt sie auf eine Festplatte. Im Hintergrund behandelt LabVIEW den Puffer als Block von reserviertem PC-Speicher. Dieser Speicherblock dient als temporärer Speicher-FIFO (First-In-First-Out) für die Übermittlung von Daten zwischen zwei Schleifen. Bei den meisten Programmiersprachen erfordert die gemeinsame Nutzung von Speicher zwischen mehreren Prozessoren erheblichen Mehraufwand beim Programmieren. LabVIEW verwaltet jedoch den gesamten Speicherzugriff und gewährleistet, dass beim Lesen und Schreiben keine Laufzeitprobleme auftreten. Die Ausführung einer Pufferstruktur kann mit folgendem Diagramm dargestellt werden:

 Abbildung 3: Modell der Datenflussprogrammierung bei der Pufferstruktur

Nachdem der Digitizer die Daten erfasst, werden sie mithilfe der Pufferstruktur (Element 0, Element 1, … Element N-1, Element N) im Speicher in einem FIFO-Puffer abgelegt. Wie die Abbildung zeigt, können Puffer Daten zwischen mehreren Schleifen übertragen. Schließlich greift das Element am Ende des Puffers auf denselben Speicher-FIFO zu und liest die Daten in der gleichen Reihenfolge aus (beginnend mit Element 0). LabVIEW erstellt automatisch unabhängige Ausführungsthreads für die beiden While-Schleifen. Streaming-to-Disk-Anwendung profitieren von dieser parallelen Ausführung, da die Bearbeitung eines Tasks nicht die Ausführung des gesamten Programms aufhält. Wird im Gegensatz dazu das sequenzielle Modell der meisten textbasierten Programmiersprachen verwendet, sinkt die Leistung erheblich.

Neben der Architektur der Anwendung können zahlreiche weitere Faktoren die Streaming-Geschwindigkeit beeinflussen.Faktoren, die Lesen von oder Schreiben auf die Festplatte verlangsamen können, sind etwa im Hintergrund ablaufende Programme wie z. B. ein Antivirenprogramm. Außerdem kommt es darauf an, wie die Festplatte für die Datengruppierung formatiert ist, ob die Systemwiederherstellung aktiviert ist, der Papierkorb benutzt wird, die Festplatte fragmentiert ist und sogar, wo sich die Datei auf der Festplatte befindet. Am besten verwendet man eine separate Festplatte (oder ein RAID-Array), um diese Probleme zu vermeiden.

Streaming-Benchmarks für Festplattensysteme

Bisher wurde beschrieben, wie die Geschwindigkeit des Daten-Streaming bei traditionellen Messsystemen von der Datenmenge begrenzt wird, die über den Bus übertragen werden kann. Die hohe Bandbreite von PXI oder PXI Express behebt diesen Engpass, so dass die Lese- und Schreibgeschwindigkeit des Speichersystems im Wesentlichen die Obergrenze vorgibt. Die Festplatten der meisten PXI-Controller unterstützen Geschwindigkeiten um 40 MB/s. Diese Rate kann jedoch erheblich erhöht werden, indem eine externe ExpressCard oder eine PXI-Express-basierte RAID-0-Festplattenkonfiguration verwendet wird. Die RAID-Technologie (Random Array of Inexpensive Disks) ist eine einfache Möglichkeit, mehrere Festplatte zu kombinieren, um höhere Geschwindigkeiten zu erreichen. Aktuelle RAID-0-Festplattenkonfigurationen erzielen bis zu 140 MB/s in ExpressCard-Systemen und 600 MB/s in einer x4-PCI-Express-Konfiguration.

Für die Berechnung des Durchsatzes eines Messgeräts beim Streaming auf Festplatte oder Streaming auf den Speicher kommt folgende Gleichung zum Einsatz:
Datenvolumen/Zeit = Abtastrate x Bytes/Abtastung x Kanalanzahl

Bei einem Hochgeschwindigkeits-Digitizer des Typs NI PXIe-5122 mit einem x4-Anschluss heißt das, dass die Abtastung mit der maximalen Rate von 100 MS/s auf zwei 14-bit-Kanälen eine Streaming-Rate von 400 MB/s Daten über den Bus ergibt. Diese Rate befindet sich durchaus innerhalb der Möglichkeiten von x4 PCI Express, so dass Streaming-to-Disk-Anwendungen mit einer RAID-0-Festplattenkonfiguration realisiert werden können. Mit dem Hochgeschwindigkeits-Digitizer PXIe-5122 konnten folgende Benchmarks für das Streaming auf Festplatte erzielt werden.

 

Gerät

Kanäle

Erfassung/Erzeugung

Maximale Abtastrate

Systemdurchsatz

Benötigte Messgeräte

PXIe-5122

1

Erfassung

100 MS/s

200 MB/s

1

PXIe-5122

2

Erfassung

100 MS/s

400 MB/s

1

PXIe-5122

3

Erfassung

100 MS/s

600 MB/s

2

PXIe-5122

4

Erfassung

75 MS/s

600 MB/s

2

Abbildung 4: Maximale Stream-to-Disk-Raten mit dem Hochgeschwindigkeits-Digitizer PXIe-5122

Für die oben aufgeführten PXIe-5122-Benchmarks sowie für die weiter unten dargestellten Benchmarks für PXIe-6537 kam ein PXI-Express-basierter Dual-Core-Prozessor mit einer auf x4 PXI Express basierenden RAID-0-Festplattenkonfiguration zum Einsatz. Die maximale Schreibgeschwindigkeit der Festplatte ergab beim Test 650 MB/s und die Menge der erfassten Daten für die unten abgebildeten Ergebnisse lag bei 40 GB. Das hier verwendete PXIe-5122-Gerät verfügt über einen integrierten Speicher von 256 MB.

Bei einem Hochgeschwindigkeits-Digital-I/O-Modul des Typs NI PXIe-6537 mit einem x1-Anschluss ergibt die Abtastung mit der maximalen Taktrate von 50 MHz auf allen 32 Kanälen eine Datenübertragung über den Bus von 200 MB/s. Unter Verwendung von PXIe-6537 zusammen mit der RAID-0-Festplattenkonfiguration konnten folgende Benchmarks für Anwendungen mit Streaming von der und zur Festplatte erzielt werden:

 

Gerät

Kanäle

Erfassung/Erzeugung

Maximale Taktrate

Systemdurchsatz

Benötigte Messgeräte

PXIe-6537

32

Erfassung

50 MHz

200 MB/s

1

PXIe-6537

64

Erfassung

50 MHz

400 MB/s

2

PXIe-6537

96

Erfassung

50 MHz

600 MB/s

3

PXIe-6537

16

Erzeugung

50 MHz

100 MB/s

1

PXIe-6537

32

Erzeugung

44,75 MHz

179 MB/s

1

PXIe-6537

64

Erzeugung

44,75 MHz

358 MB/s

2

 Abbildung 5: Maximale Stream-to/from-Disk-Raten mit dem Hochgeschwindigkeits-Digital-I/O-Modul PXIe-6537

Der Wert des Durchsatzes für 32 oder mehr Kanäle beim Streaming von der Festplatte (Erzeugung) bedarf einer Erklärung.Der niedrigere Durchsatz ist keine Einschränkung der Bandbreite von PXI Express, sondern ein Ergebnis der maximalen zulässigen Größe der übertragenen Datenpakete, die der Chipsatz des Controllers erlaubt.

Streaming-Benchmarks für integrierte Systemspeicher

Als Variante einer Stream-to-Disk-Anwendung können Daten auch von einem Hochgeschwindigkeits-Digitizer auf den integrierten Speicher des PXI-Controllers transferiert werden. Dieses Szenario beweist, dass im vorherigen Beispiel nicht der Bus den Durchsatz begrenzt, sondern die Schreibgeschwindigkeit auf Festplatte des RAID-0-Arrays. In diesem Versuch wird die erfasste Datenmenge tatsächlich durch die Größe des verfügbaren PC-Speichers begrenzt. So kann bei einer Stream-to-Memory-Anwendung mit dem Hochgeschwindigkeits-Digitizer PXIe-5122 folgende Leistung erzielt werden:

 

Gerät

Kanäle

Erfassung/Erzeugung

Maximale Abtastrate

Systemdurchsatz

Benötigte Messgeräte

PXIe-5122

1

Erfassung

100 MS/s

200 MB/s

1

PXIe-5122

2

Erfassung

100 MS/s

400 MB/s

1

PXIe-5122

3

Erfassung

100 MS/s

600 MB/s

2

PXIe-5122

4

Erfassung

100 MS/s

800 MB/s

2

Abbildung 6: Maximale Streaming-to-Memory-Raten mit dem Hochgeschwindigkeits-Digitizer PXIe-5122

Im obigen Test kam ein PXI-Express-basierter Dual-Core-Controller mit 2 GB integriertem Speicher zum Einsatz. Die Länge der Erfassung betrug 100 Mio. Samples pro Kanal, wofür bei vier Kanälen 800 MB PC-Speicher (2 Bytes pro Sample) nötig waren. Das hier verwendete PXIe-5122-Gerät verfügt über einen integrierten Speicher von 256 MB. Ein ähnlicher Test kann mit dem Hochgeschwindigkeits-Digital-I/O-Modul PXIe-6537 durchgeführt werden: 

 

Gerät

Kanäle

Erfassung/Erzeugung

Maximale Taktrate

Systemdurchsatz

Benötigte Messgeräte

PXIe-6537

32

Erfassung

50 MHz

200 MB/s

1

PXIe-6537

64

Erfassung

50 MHz

400 MB/s

2

PXIe-6537

96

Erfassung

50 MHz

600 MB/s

3

PXIe-6537

128

Erfassung

50 MHz

800 MB/s

4

PXIe-6537

16

Erzeugung

50 MHz

100 MB/s

1

PXIe-6537

32

Erzeugung

44,75 MHz

179 MB/s

1

PXIe-6537

64

Erzeugung

44,75 MHz

358 MB/s

2

Abbildung 7: Maximale Stream-to/from-Memory-Raten mit dem Hochgeschwindigkeits-Digital-I/O-Modul PXIe-6537

Aus dem gleichen Grund wie im bereits weiter oben erwähnten Beispiel PXIe-6537 wird der Durchsatz vom Chipsatz des Controllers, und nicht von der PXI-Express-Bandbreite beschränkt. Der wichtigste Schluss, der aus diesen Stream-to/from-Memory-Benchmarks gezogen werden kann, ist der, dass der Systemdurchsatz höher wird als die Schreibgeschwindigkeit des RAID-Arrays. Das bedeutet nicht nur, dass der Durchsatz über den Bus gestiegen ist, sondern auch, dass der Bus nicht länger einen Engpass darstellt. Ein Grund, warum sowohl Stream-to-Disk als auch Stream-to-Memory-Anwendungen mit PXI Express einen so hohen Durchsatz erreichen können, ist die Verwendung einer Bustechnologie mit hoher Bandbreite und niedriger Latenz – PCI Express.

Fazit

PXI und PXI Express ermöglichen Anwendern, die Grenzen ihrer Systeme in Bezug auf den Datendurchsatz noch weiter nach oben zu verschieben. Dank der hohen Bandbreite des PCI-Busses in der PXI-Plattform sind hohe Abtastraten und gleichzeitig eine lange Erfassungsdauer möglich. Die Integration der PCI-Express-Technologie in die Plattform sorgt für noch höhere Leistung mit Datenraten bis zu 1 GB/s. Ist das Design der Anwendung gut durchdacht, kann dies zur Maximierung der Streaming-Leistung eines Systems beitragen. Mehrere PXI-Express-Geräte ermöglichen jetzt Daten-Streaming zu oder vom PC-Speicher und Festplatte mit der maximalen Abtastrate, so dass ganze Datensätze später verarbeitet oder analysiert werden können.

 Weitere Informationen:

 

 

0 Bewertung(en) | 0.00 von 5
Sprache | Drucken | PDF

AGB
Dieses Tutorium ("Tutorium") wurde von National Instruments ("NI") entwickelt. Auch wenn National Instruments dieses Tutorium technisch unterstützt, ist es jedoch möglich, dass dieses Tutorium nicht umfassend getestet und überprüft wurde. NI übernimmt weder Garantien bezüglich der Qualität des Tutoriums noch bezüglich der weiteren technischen Unterstützung neuer Versionen ähnlicher Produkte und Treiber. DIESES TUTORIUM WIRD IM "IST-ZUSTAND" ZUR VERFÜGUNG GESTELLT UND NI ÜBERNIMMT KEINERLEI GARANTIEN. AUSFÜHRLICHERE ERLÄUTERUNGEN ZU ANDEREN EINSCHRÄNKUNGEN ENTNEHMEN SIE BITTE DEN NUTZUNGSBEDINGUNGEN AUF NI.COM (http://ni.com/legal/termsofuse/unitedstates/us/).