Suche

Sie sind hier

Beheben von Datenübertragungs-Engpässen bei Digitizern | Spectrum

High Speed PCIe DigitizerBei den meisten modernen PC-basierten Digitizern und Datenerfassungssystemen ist ein häufiges Problem der Tatsache geschuldet, dass die Analog/Digital-Wandler-Technologie (ADC-Technologie) in der Regel weiter entwickelt ist als die PC-Bus-Technologie. Bei sehr schnellen und hoch auflösenden Digitizer-Produkten führt dies zu Engpässen, wenn der ADC wesentlich mehr Daten digitalisieren kann, als problemlos in die PC-Umgebung übertragen werden können. So ermöglichen zum Beispiel USB-basierte Digitizer üblicherweise Abtastraten von mehr als 100 Megasamples/Sekunde (MS/s), die Datenübertragungsgeschwindigkeit zum PC ist durch den Bus jedoch häufig auf einige wenige MByte/s begrenzt. Dieser Engpass führt zu Situationen, in denen der Digitizer die Aufzeichnung von Daten unterbrechen muss und dabei potenziell wichtige Ereignisse verpasst, während er darauf wartet, dass zuvor gespeicherte Informationen gelöscht werden. Darüber hinaus begrenzen die langsamen Datenübertragungsraten die Mess- und Analysegeschwindigkeit eines Systems insgesamt. Das wird zu einem größeren Problem in Anwendungen, in denen große Datenmengen erfasst, gespeichert und analysiert werden müssen.

Ansätze zur Beseitigung des Problems von Engpässen

Ein Ansatz zur Lösung der Engpassproblematik besteht darin, die Daten an On-Board-Field-Programmable-Gate-Arrays (FPGAs) zu senden, wo der Endbenutzer die Daten verarbeiten und versuchen kann, die Menge der Informationen zu reduzieren, die über den Bus an den PC gesendet werden müssen. Bei hohen Geschwindigkeiten ist dieser Ansatz jedoch in der Regel sehr teuer, da kostspielige Tools zur Entwicklung der FPGA-Firmware und spezielle Entwicklerkenntnisse erforderlich sind. Die Entwicklung einer fortschrittlichen FPGA-Firmware ist keine leichte Aufgabe, und je nach implementierten Algorithmen kann viel Zeit ins Land gehen, bis die Firmware entwickelt, von Bugs befreit und einsatzfähig ist. Diese Art der Investition ist nur bei sehr großen Projekten sinnvoll.

Spectrum hat einen anderen Ansatz gewählt, um Benutzern von Digitizern das Leben deutlich zu erleichtern. In der Lösung sind neueste PC-Bus-Technologien und werkseitig entwickelte FPGA-Routinen sowie verschiedene intelligente Datenaufzeichnungs- und -übertragungsmodi miteinander kombiniert. Das Ergebnis kann sich sehen lassen: Der Benutzer kann den Datenübertragungsprozess einfach optimieren und komplexe Messungen sowie Analyseroutinen innerhalb der PC-Umgebung durchführen. Ist die Übertragung einmal abgeschlossen, können handelsübliche Softwaretools wie MATLAB von MathWorks, LabVIEW von National Instruments oder SBench 6 von Spectrum zur Verarbeitung der eingehenden Daten verwendet werden. Bei diesem Ansatz ist eine individuelle Firmware unnötig, wodurch sich die Entwicklung von Projekten vereinfacht und die Entwicklungskosten erheblich reduziert werden.

Bus Typ Typische kontinuierliche Dauertransferrate
USB 2.0 < 35 MB/s
GBit Ethernet/LXI < 70 MB/s
PCI/PXI/cPCI < 100 MB/s
PCI-X 66 MHz < 240 MB/s
PCIe/PXIe x1 lane Gen1 < 170 MB/s
PXIe x4 Gen 1 < 700 MB/s
AXIe (PCIe based backplane) < 1.5 GB/s
PCIe x8 lane Gen2 < 3.4 GB/s

In Tabelle 1 sind verschiedene Digitizer-Schnittstellen und die typischen Datenübertragungsgeschwindigkeiten, die sie über längere Aufzeichnungszeiträume ermöglichen, aufgeführt. Der Tabelle lässt sich leicht entnehmen, dass es bei Digitizern, die auf langsameren oder älteren Bussystemen wie USB oder PCI basieren, schnell zu Engpässen bei der Datenübertragung kommen kann, wenn die On-Board-ADCs mit mittleren Geschwindigkeiten im Bereich von 10 - 200 MS/s oder schneller digitalisieren. Das Problem verschärft sich weiter, wenn der Digitizer über mehrere Kanäle verfügt, da dies effektiv zu einer Vervielfachung der aufgezeichneten Datenmengen führt.

PCIe – ein echter Hochgeschwindigkeitsbus

Natürlich hängt die Datenübertragungsgeschwindigkeit nicht ausschließlich vom Bus des Digitizers ab. Sie wird auch von anderen Faktoren beeinflusst, beispielsweise vom PC, seiner Einrichtung und der Software, die für die Steuerung des Übertragungsprozesses verwendet wird. In Bild 1 sind die Digitizer der Baureihen M4i.22xx und M4i.44xx von Spectrum zu sehen, die Abtastraten von 5 GS/s bei 8-Bit-Auflösung, 500 MS/s bei 14-Bit-Auflösung oder 250 MS/s bei 16-Bit-Auflösung bieten. Alle Karten der Baureihe M4i verfügen über die neueste PC-Bus-Technologie für Digitizer, eine 8-Lane-PCIe-Schnittstelle der 2. Generation, die in der Lage ist, Daten mit bis zu 3,4 GB/s vom On-Board-Speicher in den PC zu übertragen. Die Karten der Baureihe M4i sind mit geschwindigkeitsoptimierten Treibern für Windows und Linux ausgestattet, außerdem werden diverse Busmaster-DMA-Engines für den direkten Speicherzugriff (DMA) verwendet, um die höchstmöglichen Datenübertragungsraten zu unterstützen.

So misst man die DMA-Datenübertragungsgeschwindigkeit

Die DMA-Übertragungsleistung ist das Ergebnis des Zusammenwirkens aller beteiligten Komponenten. Der Hersteller des Digitizers hat Einfluss auf den FPGA-DMA-Kern des Digitizers, den Kernel-Treiber, Bibliothek und das Testprogramm. Auch das Motherboard des PC beeinflusst die Gesamtleistung. Einerseits gibt es Hardware-Faktoren wie die Anzahl der verbundenen PCIe-Lanes, die unterstützte PCIe-Generation und die Anzahl der Brücken zwischen CPU und Steckplatz. Andererseits gibt es softwareseitige Aspekte wie die BIOS-Version, BIOS-Einstellungen und die payload-Größe, die von anderen im System verwendeten Komponenten abhängen können.

Transfer Speed Test ToolUm die DMA-Leistung für diesen Beitrag zu messen, wurde das Spectrum Control Center verwendet – ein kleines Softwaretool für Produkte von Spectrum, das zu Wartungs- und Testzwecken eingesetzt werden kann. Das Spectrum Control Center ist eine C++ Anwendung, die auf den Qt-Bibliotheken basiert, die die Verwendung auf Windows- und Linux-Betriebssystemen ermöglichen. Um die DMA-Übertragungsgeschwindigkeit zu messen, wird die Karte in einen speziellen Testmodus geschaltet, um jegliche Einflüsse durch das jeweilige Kartenmodell zu verhindern. Eine 2-Kanal-14-Bit-Karte für 500 MS/s generiert lediglich 1.953 MB/s an Daten, wenn sie mit der vollen Abtastrate läuft – was noch nicht einmal annähernd in dem Bereich liegt, in dem ein 8-Kanal-PCIe-Bus der 2. Generation übertragen kann.

Da es PC-Motherboards mit unterschiedlicher BIOS-Struktur gibt, hängen die Ergebnisse auch von der Größe der DMA-Benachrichtigung (Notify Size) ab – d. h. von der Datenmenge, die übertragen wird, bis eine Interrupt-Anforderung ausgegeben wird. Um die maximale Leistung zu ermöglichen, muss die optimale Benachrichtigungsgröße für die DMA-Übertragung gewählt werden. Das Spectrum Control Center iteriert verschiedene Benachrichtigungsgrößen, um die besten Leistungseinstellungen zu finden. Dies wird in Bild 2 gezeigt. In diesem Beispiel wird eine gute Leistung bei Verwendung einer Benachrichtigungsgröße von 32 kByte oder mehr erreicht. Die maximale Übertragungsgeschwindigkeit wird bei einer Benachrichtigungsgröße von 1 MByte erreicht, was mit der Ausgabe von Interrupt-Aufforderungen in einem Intervall von 300 μs einhergeht. Die maximale DMA-Übertragungsleistung des in diesem Test verwendeten Motherboards beträgt 3.330 MB/s. Auf dem Informationsbildschirm des Control Center wird auch angezeigt, dass die PCIe-payload-Größe des verwendeten Kartensteckplatzes 256 Byte beträgt was die beste Übertragungsrate zulässt.

Das in Abbildung 3 gezeigte Kommandozeilenprogramm ist auch als Quellcode für Kunden erhältlich. Mit diesem Tool können Benutzer die DMA-Einstellungen einfach anpassen und das Streamen von Daten unter Verwendung realer Einstellungen auf Festplatten-Arrays testen.

Command Line Speed Test ToolWie in Bild 3 zu sehen, ist die Leistung etwas besser (durchschnittlich 3.348 MB/s), da keine grafische Benutzeroberfläche vorhanden ist. Dieses Tool kann auch zur Messung der DMA-Leistung mehrerer Karten in parallelen Motherboards verwendet werden, wo es Engpässe hinsichtlich unzureichender PCIe-Lane-Anschlüsse aufdeckt.

Einflüsse verschiedener Einstellungen für Motherboards und die paylod Größe

In Tabelle 2 sind einige Ergebnisse von Benchmark-Tests zu sehen, die an Digitizern der Baureihe M4i mit verschiedenen PC-Motherboards und -Konfigurationen durchgeführt wurden. Die beste Leistung wird bei einer PCIe-payload-Größe von 256 Byte erzielt. Im Handbuch des Motherboards wird erläutert, wie die Steckplätze elektrisch angeschlossen sind, da nicht bei jedem mechanischen 8-Lane-Steckplatz sämtliche Lanes mit dem Chipsatz verbunden werden.
 

Motherboard Type Slot Connection Payload Size Measured Transfer Speed
Supermicro X9SLR PCIe x8 Gen3 256 3375 MByte/s
Gigabyte H77-D3H PCIe x16 Gen3 256 3360 MByte/s
ASRock Z97 Extreme 4 PCIe x8 Gen3 128 3030 MByte
Asus Z8PE-D12X PCIe x8 Gen2 256 3288 MByte/s
Supermicro X9SLR PCIe x4 Gen3 (electrically) 256 1697 MByte/s

Intelligente Auslesemodi

Zusätzlich zum schnellen PCIe-Bus bieten die Digitizer-Karten der Baureihe M4i verschiedene Aufzeichnungsmodi. Im Standard-Aufzeichnungsmodus wird der On-Board-Aufzeichnungsspeicher wie beim Oszilloskop als Ring-Buffer genutzt. Die Daten werden in den Ring-Buffer des Digitizers geschrieben, bis ein Trigger-Ereignis auftritt. Nach dem Trigger werden Post-Trigger-Werte aufgezeichnet. Somit werden sowohl Pre- als auch Post-Trigger-Werte in die aufgezeichneten Daten aufgenommen.

Der andere Aufzeichnungsmodus basiert auf dem FIFO-Prinzip (First In – First Out). Hierbei handelt es sich um einen Streaming-Modus für die kontinuierliche Datenübertragung zwischen dem Digitizer und einem externen Host-Computer. Die Steuerung des Datenstroms erfolgt automatisch durch eine Interrupt-Anforderung des Treibers.

Der Hauptunterschied zwischen Standard- und FIFO-Modus liegt in der Beschränkung des Standardmodus auf den On-Board-Speicher, der bei den Digitizern der Baureihe M4i 4 GB umfasst. Der FIFO-Modus wurde für die kontinuierliche Datenübertragung über den Bus zum PC-Speicher oder zur Festplatte entwickelt und kann daher für deutlich längere Aufzeichnungen genutzt werden. Der gesamte installierte Aufzeichnungsspeicher wird als Zwischenspeicher verwendet und ermöglicht zuverlässiges Daten-Streaming. Für die volle Streaming-Leistung sind ein spezieller RAID-Controller – mehrere SSDs mit hohem Datendurchsatz – ein optimierter Treiber, das richtige System- und Software-Setup sowie eine Streaming-Software erforderlich, die die Engpässe des Betriebssystems beseitigen. Spectrum bietet eine solche direkt einsetzbare Lösung (Bild 4), die das kontinuierliche Streamen mehrerer Terabyte Daten auf ein SSD-Array mit Übertragungsgeschwindigkeiten von mehr als 3 GB/s ermöglicht.

Speichersegmentierungsmodi für Messungen mit niedrigem Auslastungsgrad

Streaming System SolutionDer Standard- und der FIFO-Modus können auch mit drei verschiedenen Multiple-Recording-Modi kombiniert werden. Multiple-Recording kann immer dann genutzt werden, wenn das zu digitalisierende Signal in Form von Impulsfolgen bzw. sequenziell eingeht. Multiple-Recording ermöglicht eine noch effizientere Nutzung des On-Board-Aufzeichnungsspeichers, insbesondere bei Messanwendungen mit niedrigem Auslastungsgrad. Anwendungen mit niedrigem Auslastungsgrad sind solche, bei denen wichtige Kurzzeit-Ereignisse auftreten, auf die lange Ruheintervalle folgen. Die Aufzeichnungsmodi, die für diese Art von Signalen optimiert wurden, sind der Multiple-Recording-Modus (Segmentaufzeichnung), der Gated-Sampling-Modus (torsignalgesteuerte Aufzeichnung) und der ABA-Modus (doppelte Zeitbasis). Alle diese Modi segmentieren den Speicher und führen darin mehrere Aufzeichnungen durch. Der ABA-Modus mit doppelter Zeitbasis reduziert die Abtastrate zwischen den Triggern und spart auf diese Weise Speicherplatz bei gleichzeitiger Anzeige der Ereignisse in der Totzeit zwischen den Triggern. Weitere Informationen und Erläuterungen zu diesen Aufzeichnungs- und Multiple-Recording-Modi sind im Artikel “Anwendung der Aufzeichnungsmodi bei modularen Digitizern" zusammengefasst.

On-Board-Analyse

Firmware OptionsEine weitere und letzte Methode, die man zur Bewältigung der Engpass-Problematik bei Digitizern der Baureihe M4i nutzen kann, sind On-Board-Verarbeitung und Datenreduktion. In die Karten der Baureihe M4i ist ein FPGA integriert, das für zahlreiche Funktionen genutzt wird, beispielsweise Speichersteuerung, Triggermodi, PCIe-Bus-Steuerung und Signalverarbeitung. In Bild 5 ist ein Blockschaltbild mit der grundlegenden Architektur eines Digitizers der Baureihe M4i dargestellt. Innerhalb des FPGA ist Speicherplatz reserviert, in den werkseitig entwickelte Firmware oder Funktionen wie Signalmittelwertbildung, Spitzenerkennung und Statistikfunktionen geladen werden können.

Die On-Board-Signalverarbeitung kann die letzten Endes auf den PC zu übertragende Datenmenge um mehrere Größenordnungen verringern. Beim Arbeiten mit sich wiederholenden Signalen ist die Firmware zur Mittelwertbildung beispielsweise in der Lage, über 65.000 einzelne Wellenformen mit einer Länge von jeweils bis zu 128.000 Punkten zu sammeln. Die Funktion bewirkt eine effektive Reduzierung der Daten aller Einzelwellenformen auf eine einzige gemittelte Wellenform.

Auf ähnliche Weise ist die Firmware zur Erkennung von Spitzen in der Lage, Maximum- und Minimum-Ereignisse innerhalb eines Signals zu erkennen und ihre Werte zusammen mit den entsprechenden Zeitinformationen zu speichern. Auf diese Weise lassen sich Wellenformen, die zuvor tausende, wenn nicht gar Millionen von Datenpunkten enthielten, auf einen einfachen Satz von vielleicht sechs bis acht einfachen Zahlen reduzieren.

Zusammenfassung

Während sich durch die Anwendung der Analog/Digital-Wandler-Technologie (AWC-Technologie) in modernen Digitizern schnellere Aufzeichnungsraten bei höherer Auflösung erzielen lassen, wachsen die aufzuzeichnenden, zu speichernden und auf einen PC zu übertragenden Datenmengen immer weiter. Um die Daten auf einen PC zur Anzeige, Speicherung und Analyse übertragen zu können, sind Digitizer mit einem ausreichend leistungsstarken Bus (der in der Lage ist, dauerhaft vergleichbare Datenübertragungsraten sicherzustellen), flexible Aufzeichnungs- und Übertragungsmodi sowie ein gut konfigurierter PC und geeignete Software erforderlich. In extremen Fällen, in denen sich eine Datenreduktion als erforderlich erweist, kann auch die FPGA-Technologie Anwendung finden.

Links