Die immer leistungsfähigeren Prozessoren sind eine weitere Schlüsseltechnologie für den Trend hin zur „Instrumentation 2.0“. Genauso wie der Bus mit der Geschwindigkeit Schritt halten muss, mit der das Messgerät Signale digitalisiert, ist es notwendig, dass der Prozessor die Geschwindigkeit unterstützt, mit der er Daten vom Bus empfängt.
Die bisherige Vorgehensweise für die Entwicklung neuer, leistungsfähigerer Prozessoren war es, die Taktrate und die Transistordichte zu erhöhen. Dabei traten aber zunehmend Probleme bei der Kühlung der Prozessoren auf. Mittlerweile setzen die Hersteller von Prozessoren auf Multicore-Architekturen, bei denen in einem Gehäuse mehrere Prozessorkerne arbeiten, auf denen so eine echte parallele Ausführung von Programmcode möglich ist. Die Pläne von Herstellern wie etwa Intel und AMD sehen vor, künftig vor allem in Architekturen auf Grundlage von Multicore-Prozessoren zu investieren. Intel gab sogar bekannt, an einem 80-Core-Prozessor zu arbeiten, der im Jahr 2011 auf den Markt kommen und eine Leistung von 1 Tera FLOPS bringen soll [4].
Jedoch kann die Leistung eines neuen Prozessors im PC erst dann voll genutzt werden, wenn die Software auf die neuen Möglichkeiten ausgelegt ist. Um von der Multicore-Technologie zu profitieren, müssen Programmierer Programme schreiben, die die verschiedenen Prozessorkerne ansprechen. Dies ist eine äußerst anspruchsvolle Aufgabe, und deshalb wurde auch schon viel Forschung betrieben, um Compiler zu entwickeln, die automatisch für Multithreading sorgen. Bereits bei zwei Cores stellt die manuelle Programmierung eine Herausforderung dar, bei 80 Cores jedoch wird sie zu einem Ding der Unmöglichkeit. Aus diesem Grund ist eine Software-Lösung unbedingt notwendig.
Das Programmpaket „LabVIEW“ beispielsweise führt Programmcode bereits von selbst parallel aus. Eine einzelne Schleife spricht einen Core an, mehrere parallel ablaufende Schleifen teilen die Aufgabe auf verschiedene Cores auf. Ein Anwender dieser Software muss somit nicht seinen Programmcode umschreiben, um von den Vorteilen der Multicore-Technologie profitieren zu können (Bild 3).
Entwicklung individueller Instrumente mit FPGAs
Wenn also Bus- und Prozessortechnologien das Konzept der virtuellen Instrumente und damit auch anwenderdefinierte Systeme vorantreiben, wie kann diese Flexibilität auch auf das tatsächliche Messgerät ausgedehnt werden? – Über FPGAs sind Anwender beispielsweise in der Lage, das Verhalten ihrer Hardware zu definieren und die Verarbeitung direkt auf dem Gerät auszuführen. Zwar sind FPGAs schon in zahlreichen Messgeräten enthalten, jedoch konnten Anwender bis vor kurzem nicht von deren Flexibilität profitieren. Nur die Hersteller konnten FPGAs programmieren, um damit ihre proprietäre Firmware zu definieren. Da jetzt auch Anwender Zugriff auf FPGAs für Prüfanwendungen haben, können sie selbst bestimmen, wie ihre Hardware funktioniert, welche Daten lokal verarbeitet werden und welche Daten an ein übergeordnetes Analyseprogramm weitergeben werden.
Hier stellt sich nun wieder die Frage, wie sich diese erhöhte Leistung und Flexibilität nutzen lassen. Anwender können FPGAs über Hardware-Beschreibungssprachen wie etwa Verilog oder VHDL programmieren, die textbasiert sind, oder mit einer grafischen Programmiersprache wie LabVIEW FPGA, die keine Kenntnisse von Hardware- Beschreibungssprachen voraussetzt. Ein softwarebasierter Ansatz ist die Lösung für erhöhte Flexibilität und Anpassbarkeit.
Die GAO-Studie beschreibt, inwiefern sich konventionelle Geräte, also Instrumentation 1.0, von virtuellen Instrumenten bzw. Instrumentation 2.0, unterscheiden (siehe auch Bild 1). Instrumentation 1.0 wird durch die Abhängigkeit von hardwarebasierten Systemen gekennzeichnet. In einem System der Generation Instrumentation 1.0 liest der Anwender üblicherweise ein Messergebnis vom Frontpanel des Gerätes ab. Alternativ könnte er unter Umständen dasselbe herstellerdefinierte Messergebnis an einen PC übertragen. Ist eine erforderliche Art der Messung mit vorhandenen Geräten nicht möglich, muss neue, auf die Aufgabe spezialisierte Hardware angeschafft werden.
Instrumentation 2.0. dreht den Spieß um. In einem System mit virtuellen Instrumenten überträgt die Hardware die digitalisierten Rohdaten von einem I/O-Modul, etwa einem Digitizer oder HF-Analysator, zur Anwendungs-Software, die dann das anwenderdefinierte Messergebnis liefert. Ein softwaregestützter Ansatz bietet die schnellste und flexibelste Methode zum Lösen solcher speziellen Probleme, denn sie versetzt Anwender in die Lage, sehr spezialisierte Messgeräte für ihre individuellen Anforderungen selbst zu erstellen. Neben der Anwendungs- Software umfassen Systeme mit virtuellen Instrumenten üblicherweise auch modulare Hardware. Modulare Komponenten erleichtern Anwendern die Anpassung des Testsystems an sich ändernde Anforderungen wie z.B. weitere Schnittstellen und senken den Kostenaufwand dadurch, dass vorhandene Hardware für neue Aufgaben leichter weiterverwendet und ergänzt werden kann.
Das Konzept der virtuellen Instrumente wurde seit langem schon beispielsweise von National Instruments in Form der vor über 20 Jahren herausgebrachten ersten A/D-Wandlerkarten (Digitizer) als Steckkarten für PCs (damals Macintosh-Computer) realisiert. Seit einigen Jahren konzentrieren sich auch Firmen, die traditionell im Bereich der konventionellen Prüf- und Mess-Hardware tätig sind, immer mehr auf softwaredefinierte Messtechnik.
Tektronix (www.tek.com) integriert beispielsweise seit kurzem die interaktive Mess-Software LabVIEW Signal- Express von National Instruments in viele seiner Oszilloskope. Agilent (www.agilent.com) hat einige USBgestützte modulare I/O-Module veröffentlicht und zwei Hersteller von PXI aufgekauft, wodurch die bestehende PXIProduktfamilie ergänzt wird. Auch Keithley Instruments (www.keithley.com) hat kürzlich eine Reihe von PXI-Produkten vorgestellt.
Alle diese Beispiele belegen die Akzeptanz und Verbreitung des Konzepts der „virtuellen Instrumente“, das in seinen Architekturprinzipien in Bild 2 näher charakterisiert ist.