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

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


Feedback


Ja Nein

Ähnliche Kategorien

Thematisch verwandte Links - Developer Zone

Thematisch verwandte Links - Products and Services

Techniken zur Optimierung des Gerätedurchsatzes

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

Entwickler können beim Entwurf von Mess- und Prüfanwendungen verschiedene Maßnahmen ergreifen, um den Gerätedurchsatz zu optimieren. Ein Teil des Optimierungsprozesses besteht darin, die geeigneten Geräte und das passende Bussystem auszuwählen. Während bei der Auswahl eines Messgeräts zahlreiche Faktoren eine Rolle spielen, hat die verwendete Bustechnologie wesentlichen Einfluss auf die Leistung des Geräts. Viele Busse stehen für die Messgerätesteuerung zur Verfügung, wie etwa GPIB, HS488, RS242, VXI, USB, Ethernet/LAN, PCI und PXI (das den PCI-Bus nutzt). Mit GPIB profitieren Anwender von einer bewährten Bustechnologie und einer Vielfalt an verfügbaren Messgeräten. USB ist allgegenwärtig und einfach anzubinden und mit Ethernet/LAN können Systementwickler verteilte Anwendungen über große Distanzen hinweg realisieren. Wenn sie eine modulare Gerätearchitektur wie etwa PXI nutzen, profitieren Entwickler von offenen, von vielen Herstellern unterstützten Standards und von flexibler Software. Damit sind sie in der Lage eine anwenderdefinierte Lösung zu erstellen, die genau auf die Anforderungen der jeweiligen Anwendung zugeschnitten ist.

Die unterschiedlichen Bussysteme haben auch verschiedene Stärken und manche Busse eignen sich für eine bestimmte Anwendung besser als andere. Bei der Evaluierung der Busleistung stellen Latenz und Bandbreite zwei wichtige Faktoren dar. Die Latenz bestimmt die Verzögerung bei der Datenübertragung, während die Bandbreite, normalerweise in MB/s angegeben, die Übertragungsrate der Daten über den Bus darstellt. Würde man einen Bus mit einer Straße vergleichen, so entspricht die Latenz der Anzahl der Ampeln auf der Strecke und die Bandbreite der Breite der Straße und der Geschwindigkeit des Fahrzeugs. So erhöht eine kürzere Latenzzeit etwa die Leistung von Anwendungen wie Digitalmultimetermessungen, Schaltmodulen und die Konfiguration von Messgeräten. Eine höhere Bandbreite wiederum ist besonders wichtig für Applikationen zur Signalverlaufserzeugung und -erfassung oder RF-Messungen. Abbildung 1 vergleicht Latenz und Bandbreite verschiedener Busse zur Gerätesteuerung. Auf der Y-Achse ist die Bandbreite angezeigt, die nach oben hin zunimmt bzw. besser wird, während die X-Achse die Latenz abbildet, welche nach rechts hin abnimmt bzw. sich ebenfalls verbessert.


[+] Bild vergrößern

Abbildung 1: PCI Express, einschließlich PXI Express, bietet die beste Kombination von hoher Bandbreite und niedriger Latenz.

Durch Kenntnis des Testumfangs und der genutzten Kommunikationsart können Entwickler Anforderungen an Latenz und Bandbreite der Busse einschätzen und den passenden Bus für die Optimierung des Systemdurchsatzes auswählen.

Vergleichstest

Dieses Whitepaper evaluiert die Ergebnisse von Benchmark-Tests zur Signalerfassung und untersucht damit, wie der Gerätebus den Durchsatz beeinflusst. Um diesen Einfluss zu messen, führten Entwickler Leistungsvergleiche mit drei verschiedenen Oszilloskopen bzw. Digitizern und fünf verschiedenen Bussen durch. Die Ergebnisse reflektieren im Großen und Ganzen die Busleistung basierend auf Latenz und Bandbreite, hängen aber zum Teil auch von der Implementierung des Messgeräts und der Auslastung der jeweiligen Anwendung ab.

Die Benchmarks maßen die Leistung aus der Perspektive eines Anwenders, der ein Signal erfasst. Die für die Erfassung eines Signals gemessene Zeit umfasst folgende vier Phasen

  1. Senden eines Befehls von der API (Application Programming Interface)
  2. Digitalisieren des Signals und Laden des Ausgangspuffers
  3. Übertragen der Daten über den Bus
  4. Empfangen und Darstellen der Daten auf dem Computer

Entwickler führten diese Benchmark-Tests auf einem Pentium 4 Computer mit 3.0 GHz unter dem Betriebssystem Windows XP und der Entwicklungsumgebung NI LabVIEW durch. Für die Kommunikation mit den Geräten Agilent MSO6032A und Tektronix TDS 5104 boten VISA-Befehle direkte I/O-Kommunikation mit den Messgeräten. Um Befehle an NI 5122 zu senden, verwendeten die Entwickler den mitgelieferten Gerätetreiber.

Mit einem systematischen Benchmark-Test können Entwickler bestimmen, in welchem Maße Veränderungen am Gerätebus und/oder am Messgerät den Systemdurchsatz beeinflussen. Verwendet wurden ein hochgenauer Timer und eine Reihe typischer Gerätesteuerungsaufgaben. Um die Zeit für die Erfassung eines Signals genau messen zu können, bedienten sich die Benchmark-Tests des im Windows-Betriebssystem integrierten hochauflösenden Timers. Die Funktionen QueryPerformanceCounter und QueryPerformanceFrequency bieten Zugriff auf den Timer. QueryPerformanceCounter liefert den aktuellen Zählerwert und QueryPerformanceFrequency die Frequenz bzw. Rate, mit welcher der Zähler pro Sekunde inkrementiert. Diese Aufrufe ermöglichen einen Zähler mit sehr hoher Auflösung, da die Zählerfrequenz gewöhnlich dieselbe ist wie die Frequenz des CPU-Takts. Theoretisch führt ein CPU-Takt von einem GHz zu einem Zähler von 1 ns. In der Praxis ist die Auflösung jedoch höher, da die taktverarbeitende Hardware, die BIOS-Software und Windows Verzögerungen und Jitter hervorrufen. Die resultierende Timer-Auflösung hängt vom Rechner ab und bewegt sich meist im unteren Mikrosekundenbereich. Für den Leistungsvergleich sollte die Timer-Auflösung unbedingt bestimmt werden.

Zur Messung der für eine Signalerfassung notwendigen Zeit folgten die Entwickler dem in Abbildung 2 dargestellten Prozess. Zuerst ermittelten sie mit der Funktion QueryPerformanceFrequency die Zählerfrequenz. Danach wird die Funktion QueryPerformanceCounter dreimal aufgerufen. Beim ersten Mal ergibt sich daraus der Initialisierungswert (Initial Counter Value). Unmittelbar danach wird sie wieder aufgerufen und liefert den Startzählerstand (Before Counter Value), bevor der Befehl zur Signalerfassung gesendet wird. Sobald die Daten vom Computer abgefragt wurden, wird die Funktion nochmals aufgerufen, um den Endzählerstand (Final Counter Value) zu erhalten. Der Overhead des Aufrufs QueryPerformanceCounter wird berechnet, indem der Initialisierungswert vom Startzählerstand abgezogen wird. Dann ergibt sich die tatsächliche Messzeit durch die Differenz zwischen dem Endzählerstand und dem Startzählerstand minus den Overhead.

Abbildung 2: Methodik des Benchmark-Tests für den Gerätedurchsatz

Unter Verwendung dieser Funktionen konnten die Entwickler die Zeit ermittelt, die für den gesamten Prozess der Erfassung eines Signals notwendig ist, vom Senden des Befehls bis zum Empfangen der Daten.

Testergebnisse und Beobachtungen

Mithilfe von drei Messgeräten werden beim Benchmark-Test GPIB, HS488, Ethernet/LAN, USB und PCI, einschließlich PXI, beim Erfassen von Signalen mit drei verschiedenen Abtastwerten verglichen: 500, 1000 und 1.000.000 Abtastungen. Das Oszilloskop TDS 5104 von Tektronix ist mit GPIB, HS488 und Ethernet kompatibel, während das Oszilloskop MSO6032A von Agilent mit GPIB, Ethernet und USB arbeitet. Mit einem Digitizer/Oszilloskop des Typs NI 5122 wurden im Rahmen des Tests Benchmark-Daten für PCI [PXI] gesammelt.

Die unbearbeiteten Ergebnisse sind in Tabelle 1 aufgeführt.

Sample Size
Instrument
Bus
Waveform Time (µs)
Equivalent Throughput (MB/s)
500
NI 5122
PCI[PXI]
7,033.19
0.0711
Tek TDS 5104
GPIB
8,877.71
0.0563
Tek TDS 5104
HS488
9,233.42
0.0542
Tek TDS 5104
Ethernet
14,294.39
0.0350
Agilent MSO6032A
Ethernet
69,947.38
0.0071
Agilent MSO6032A
GPIB
70,940.31
0.0070
Agilent MSO6032A
USB
71,694.10
0.0070
1,000
Tek TDS 5104
HS488
6,676.78
0.1498
NI 5122
PCI[PXI]
6,901.53
0.1460
Tek TDS 5104
GPIB
7,078.84
0.1413
Tek TDS 5104
Ethernet
9,983.38
0.1002
Agilent MSO6032A
Ethernet
70,725.43
0.0141
Agilent MSO6032A
USB
71,712.53
0.0139
Agilent MSO6032A
GPIB
72,369.68
0.0138
1,000,000
NI 5122
PCI[PXI]
48,342.02
20.6879
Agilent MSO6032A
USB
272,040.17
3.6759
Tek TDS 5104
Ethernet
880,624.36
1.1356
Agilent MSO6032A
Ethernet
1,109,983.93
0.9009
Tek TDS 5104
HS488
1,325,664.74
0.7543
Agilent MSO6032A
GPIB
1,406,901.97
0.7108
Tek TDS 5104
GPIB
1,554,999.33
0.6431
Tabelle 1: Leistungsvergleich von Messgeräten und Bussen basierend auf Abtastwerten

Um aus diesen Benchmarks detaillierte Erkenntnisse zu gewinnen, können Entwickler evaluieren, welche Phasen der Signalerfassung immer gleich lang dauern und welche vom Bus und vom Messgerät abhängig sind.

  1. Senden eines Befehls von der API (Application Programming Interface)
  2. Digitalisieren des Signals und Laden des Ausgangspuffers
  3. Übertragen der Daten über den Bus
  4. Empfangen und Darstellen der Daten auf dem Computer

Bei Phasen 1 und 4 ist anzunehmen, dass die PC-Zeit konstant ist. Das bedeutet, dass die Zeit, die benötigt wird, um den Befehl zu senden und zu verarbeiten sowie die Zeit, die der Computer braucht um, die Daten zu empfangen und zu extrahieren, in allen Fällen vergleichbar ist. Des Weiteren enthält der Zeitrahmen für die 2. Phase eine minimale, vom Bus und vom Gerät unabhängige Standardmesszeit, die sich aus dem Abtastwert und der Abtastrate errechnet. In der 3. Phase kommen die Unterschiede zwischen Bussen und Geräten deutlich zum Ausdruck, da sie zum Großteil von der Busleistung bei der Datenübertragung und der Methode, mit welcher das Messgerät Daten erfasst und den Ausgangspuffer lädt, abhängt. Da für einen Leistungsvergleich Tests desselben Messgeräts auf mehreren Bussen durchgeführt werden, können Entwickler zwischen Ergebnissen, die aufgrund der Geräteimplementierung zustande gekommen sind und Ergebnissen, die von der Busleistung beeinflusst wurden, unterscheiden.


[+] Bild vergrößern

Abbildung 3: Geräte- und Busleistung für 500 S (Samples, Abtastungen)

Aufgrund dieser vier Phasen können bei der Untersuchung der Signalzeit, die für die verschiedenen Abtastwerte und Abtastraten notwendig sind, interessante Beobachtungen gemacht werden. Werden 500 Samples mit einer Abtastrate von 250 kS/s erfasst, nimmt diese Messung mindestens 2000 µs in Anspruch: (500 S)/(250 kS/s) = 2000 µs. Dieser Wert dient als Grundlage zum Vergleich der Leistung verschiedener Bussysteme bei der Datenübertragung. Abbildung 2 stellt die Leistung aller möglichen Kombinationen von Messgerät und Bussystem dar und vergleicht sie mit der zugrunde liegenden minimalen Messzeit. Da bei Agilent MSO6032A mit allen drei verwendeten Bussen (GPIB, Ethernet und USB) eine längere Signalzeit auftritt, ist dies wahrscheinlich den Implementierungsmethoden zuzuschreiben, die mehr Wert auf kleinere Abtastwerte als auf die Busleistung legen. Der Vergleich der Leistung von Tektronix TDS 5104 auf GPIB, HS488 und Ethernet mit NI 5122 auf PCI [PXI] liefert Einblicke in die Busleistung. Da die Signalgröße kleiner ist, hat die Latenz des Busses einen größeren Einfluss auf die sichtbare Leistung. Parallele Busse wie PCI [PXI] und GPIB weisen eine bessere Latenz auf als serielle Busse wie Ethernet. Da PCI [PXI] die niedrigste Latenz aller Bussysteme besitzt, bringt NI 5122 auf PCI/PXI bei 500 S  erwartungsgemäß eine um 1,27-mal bessere Leistung als Tektronix TDS 51204 auf GPIB und erreicht eine 2-mal bessere Performance als Tektronix TDS 51204 auf Ethernet.

 
[+] Bild vergrößern
[+] Bild vergrößern

Abbildung 4: Geräte- und Busleistung für 1 kS

Beim Vergleich der Daten bei 1000 Abtastwerten bei einer Abtastrate von 500 kS/s sind die Ergebnisse weitgehend ähnlich. Als Grundlinie gilt auch hier die minimale Messzeit von 2000 µs. Die schwächere Leistung des Agilent MSO6032A mit allen drei Bussen ist wiederum vermutlich der Implementierung der Geräte für Erfassungsvorgänge mit geringen bis mittleren Abtastwerten zuzuschreiben. Um die Geschwindigkeiten der verschiedenen Busse gegeneinander abzuwägen, bietet sich eher ein Vergleich von Tektronix TDS 5104 mit NI 5122 an. Die Ergebnisse von Tektronix TDS 5104 mit Ethernet sind immer noch merklich schwächer als mit GPIB, HS488 und PCI [PXI], da Messungen mit solchen Abtastwerten hauptsächlich von der Latenz des Busses abhängen und die Latenz bei Ethernet höher ist als bei den anderen Bussen (s. Abb. 1). Die Benchmark-Ergebnisse mit 1 kS demonstrieren die Vorteile von HS488 und PCI [PXI].

HS488, ein GPIB-Übertragungsprotokoll mit höherer Geschwindigkeit, skaliert die maximale Datenübertragungsrate des ANSI/IEEE-Standards 488.1-1987 bis auf 8 MB/s, indem Verzögerungen im 3-Draht-Handshake-Protokoll IEEE 488.1 entfernt werden. Mit dem HS488-Protokoll kann die GPIB-Controller-Hardware automatisch kompatible Geräte erkennen, die Daten mit dem HS488-Handshake-Protokoll übertragen können. Erkennt der Controller kein HS488-kompatibles Gerät, verwendet er standardmäßig automatisch das 3-Draht-Handshake-Protokoll IEEE 488.1 für die Datenübertragung.


[+] Bild vergrößern

Abbildung 5: Geräte- und Busleistung für 1 MS

Bei größeren Abtastwerten von 1 MS bei 100 MS/s sind die Ergebnisse stärker von der Busbandbreite abhängig. Die minimale Messzeit beträgt hier 10000 µs – da die Signale jedoch so groß sind, ist vor allem die Fähigkeit des Busses zur schnellen Datenübertragung ausschlaggebend für die Leistung. Da Ethernet und USB eine höhere Bandbreite zur Verfügung stellen als GPIB, entspricht die bessere Leistung von Tektronix TDS 5104 auf Ethernet und von Agilent MSO6032A auf Ethernet und auf USB den Erwartungen. Da PCI (und PXI) eine viel höhere Bandbreite besitzt und NI 5122 das Abrufen von Signaldaten effizient implementiert, ist NI 5122 auf PCI/PXI darüber hinaus hinsichtlich der Leistung 5,6-mal besser als Agilent MSO6032A auf USB, 18,7-mal besser als Tektronix TDS 5104 auf Ethernet und 22,8-mal besser als Agilent MSO6032A auf Ethernet.

Möglichkeiten der Leistungsoptimierung

Ausgehend von diesen Leistungstests gibt es mehrere Möglichkeiten, den Systemdurchsatz zu erhöhen. Die Ergebnisse beweisen die Bedeutung der Faktoren Latenz und Bandbreite. Da die Busbandbreite und Latenz großen Einfluss auf die Leistung haben, können Anwender einen Bus mit den entsprechenden Eigenschaften wählen, die besser zu ihren Anwendungen passen. Wird ein Bus wie PCI [PX] mit niedriger Latenz und hoher Bandbreite verwendet, profitieren Anwender von einem Messgerät, das auch bei sehr unterschiedlichen Abtastwerten eine gute Leistung bringt und die Anforderungen vieler Anwendungen erfüllt. Bei Anwendungen mit niedrigeren Abtastwerten wie etwa 500 S bieten PCI [PXI] und GPIB die beste Leistung, da diese Busse eine niedrigere, also bessere, Latenz aufweisen. Auch bei Abtastwerten wie z. B. 1000 S ist die Latenz von maßgeblicher Bedeutung, doch auch eine höhere Bandbreite ist bereits von Vorteil. In diesem Fall bringen HS488, PCI[PXI] und GPIB eine gute Leistung. Bei hohen Abtastwerten, wie etwa 1 MS, sollte ein Bus mit hoher Bandbreite ausgewählt werden. Höhere Bandbreiten, wie sie PCI[PXI] und USB bieten, eignen sich gut für große Anwendungen mit hohen Abtastwerten.

Darüber hinaus kann die Systemleistung verbessert werden, indem die Implementierung der Messgeräte für die jeweiligen in der Anwendung benötigten Abtastwerte evaluiert wird. Aufgrund der Implementierung brachte das Oszilloskop von Agilent bei niedrigen bis mittleren Abtastwerten keine sehr gute Leistung, wohingegen die Implementierung für hohe Abtastwerte gut geeignet war. Deshalb ergibt die Untersuchung der Implementierung verschiedener Gerätesteuerungsaufgaben durch das Messgeräte wertvolle Hinweise auf das optimale Design eines Systems.

Eine geeignete Methode, um die drei Faktoren – Latenz, Bandbreite und Implementierung – gegeneinander abzuwägen, ist die genauere Betrachtung der verfügbaren Messgeräte, um festzustellen, welche Geräte am besten zur jeweiligen Anwendung passen. Mit einem hochgenauen Timer, wie etwa den in Windows verfügbaren Funktionen QueryPerformanceCounter und QueryPerformanceFrequency, und typischen Standard-Gerätesteuerungsaufgaben können Anwender wiederholbare Leistungstests entwickeln, um die Messzeiten spezifischer Applikationen zu ermitteln.

Mithilfe von Leistungstests kann der Systemdurchsatz optimiert werden, da der Einfluss von Latenz und Bandbreite des Busses sowie Implementierung des Messgeräts auf eine spezifische Anwendung aufgezeigt wird. Durch Veränderungen an Systemkomponenten (Hardware oder Software) entweder am Host-PC oder am Messgerät kann man die Leistung steigern. Darüber hinaus werden auch nicht alle Implementierungen gleich erstellt. Verschiedene Hersteller bieten unterschiedliche Implementierungen von GPIB, USBTMC, und TCP/IP für die Messgerätesteuerung (auch als VXI-11 bekannt) an. Für die Maximierung von Prüfzeiten und Wiederholbarkeit muss der Anwender die Unterschiede zwischen verschiedenen Implementierungen kennen.

Zwar sind alle diese Überlegungen besonders nützlich, wenn Anwender neue Ausrüstung erwerben können oder mehrere Messgeräte zur Auswahl haben. Jedoch kann mit diesen Techniken auch der Durchsatz eines bestehenden Systems verbessert werden. Kommen bestehende Geräte zum Einsatz, kann durch deren Untersuchen festgestellt werden, welche Arten von Befehlen die beste Leistung erzielen. Darüber hinaus sind viele Messgeräte mit unterschiedlichen Bussystemen kompatibel. Anwender können ihr System optimieren, indem sie einen Bus wählen, der für ihre Anwendung besser geeignet ist. Bei niedrigen bis mittleren Abtastwerten lohnt es sich beispielsweise, herauszufinden, ob ein GPIB-Messgerät mit HS488 ausgestattet ist, weil dies den Systemdurchsatz erhöhen würde.

Fazit

Aufgrund der Vielfalt der verfügbaren Messgeräte müssen Entwickler viele Faktoren evaluieren, um den Durchsatz ihrer Mess- und Prüfanwendungen zu erhöhen. Zu den Faktoren, die beim Systemdesign und der Evaluierung von Messgeräten beachtet werden sollten, gehören die Latenz und Bandbreite des Bussystems sowie die Implementierung der Messgeräte. Zur Verfügung stehen außerdem mehrere unterschiedliche Gerätebusse, wobei jeder seine individuellen Stärken aufweist. Latenz und Bandbreite des Busses haben direkten Einfluss auf die Leistung. Bei niedrigen Abtastwerten bieten PCI [PXI] und GPIB aufgrund ihrer geringen Latenz eine hohe Leistung. Bei niedrigen bis mittleren Abtastwerten haben sich HS488, PCI [PXI] und GPIB bewährt. Da die Leistung bei hohen Abtastwerten v. a. von der Bandbreite bestimmt wird, sind PCI [PXI], USB und Ethernet hierfür eine gute Wahl. Da verschiedene Hersteller unterschiedliche Implementierungen des Messgeräts anbieten, sollten auch diese verglichen werden. Einige bringen bei hohen Abtastwerten beispielsweise bessere Leistung als bei niedrigeren. Werden die für die jeweilige Anwendung erforderlichen Kommunikationsarten und Messgeräte untersucht und verglichen, können sich Anwender für die Geräte entscheiden, die ihnen eine Erhöhung des Durchsatzes ermöglichen. Auch der Durchsatz bestehender Systeme kann durch die Beachtung dieser verschiedenen Faktoren erhöht werden.

 

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

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/).