Virtuelle Emulation von Software-Defined-Networking-Geräten

| Autor / Redakteur: Ron Squiers * / Sebastian Gerstl

Durch die Verwendung von VirtuaLAB PCIe lässt sich die Kluft zwischen Pre- und Post-Silizium überwinden. Als Beispiel dient ein Fall, wo Hunderte von Tests auf Hunderten von Geräten ablaufen müssen, bevor diese Muster nach dem Fab-Out an die Kunden ausgeliefert werden können. Tests hinsichtlich Funktion, Ausbeute, Spannung und Temperatur (DVT) sowie SDN-Goldstandard-Anwendungen müssen sofort auf jeder Probe laufen und zwar bevor die automatisierte Prüfung und Messung (Automated Test and Measurement, ATM) verfügbar ist. Alle Tests, die während der Pre-Silizium-Entwicklung validiert wurden, können für die Post-Silizium-Tests verwendet werden, da sie unter dem Virtual-PCIe-VM-Paradigma identische logische Plattformen nutzen.

Manchmal müssen Anwendungen, die in der QEMU VM laufen, verlangsamt werden, damit sie bei der Emulation besser mit der tatsächlichen Taktrate des DUT übereinstimmen. Auf diese Weise werden Software-Timeouts erfüllt, die innerhalb von Applikationen eingebaut sein können. Wenn die anvisierten Applikationen keine Timeout-Anforderungen haben, laufen diese Anwendungen mit der voreingestellten VM-Taktrate im QEMU mit Bezug auf den Emulationstakt des DUT.

Sobald Designteams die erweiterten Funktionen der VM kennen lernen, wollen sie mit VirtuaLAB PCIe Produktsoftware und Treiber parallel zum Hardware-Entwicklungszyklus entwickeln. Hard- und Softwarearchitekturen können frühzeitig im Entwicklungszyklus zusammen verifiziert und bestätigt werden, was weniger Code-Rip-up erfordert. Funktionelle Software-APIs, die mit Vektor-basierter Verifikation nicht möglich waren, lassen sich nun mit VirtuaLAB PCIe testen. Hochverfügbare (High Availability, HA) APIs sind solch ein Beispiel.

Um zu verifizieren, dass die API unter allen Traffic-Szenarien, Instandhaltungs- und Parallelprozessen wie erwartet arbeitet, muss eine HA-API jederzeit Geräte programmieren können, während der Traffic gestreamt wird. Betreiber können einen HA-API-Server zu Wartungszwecken herunterfahren. Eine untergeordnete CPU erfasst den Zustand des SDN bevor die primäre CPU abschaltet. Sobald die Wartung abgeschlossen ist, bootet die primäre Management-CPU wieder und führt die gesamte Initialisierungssequenz erneut aus, ohne den Zustand der Hardware zu verändern. Die Management-CPU stellt den Zustand ihrer SDN-Software aus dem Ruhezustand wieder her, der in der noch laufenden SDN-Hardware gefunden wurde. Ohne virtuelle PCIe-Tests wären solche Hardware/Software-Interaktionen zur Validierung des Pre-Siliziums nicht möglich.

Das Testen aller Software-Zustandsräume in Bezug auf die Hardware ist eine enorm große und komplexe Aufgabe. Für diese und viele andere dynamische Verifikationsaufgaben, die eine reaktive Konfiguration des DUT mittels VirtualLAB PCIe ermöglichen, benötigen Entwicklungsteams einen Test, der den Wert der Sequenzierung durch den Produktcoderaum vor dem Tape-Out erkennt. Das „Shift left“-Paradigma für die Veloce-Emulation ist ein wichtiger Aspekt in der Unternehmenskultur von Mentor.

Leistungsaspekte, Debugging und Benutzerfreundlichkeit

Je nachdem, wie die SDK-Software geschrieben ist, funktioniert sie unter Umständen nicht wie eine typische PCIe-EP-Anwendung. Ein vom EP initiierter DMA hat viele Vorteile: Die CPU wird nicht geladen, weil sie lokalen Speicher nur bei Bedarf nutzt, und der EP kann alle Transport-Latenzen durch mehrfache Leseanforderungen ausblenden.

Unabhängig von der Optimierung des EP über den PCIe-DMA ist das eigentliche Ziel für VirtuaLAB Ethernet plus VirtuaLAB PCIe die Verifizierung großer SDN-Designs, bei denen die Emulationszeit für Ethernet-Tests vermutlich viel größer ist als die Download-Zeiten der PCIe-Konfigurationen für die meisten Testszenarien. Dies ist wichtig, weil es den Unterschied von Mentors Out Of the Blue (OOB) Transaktor-Methode gegenüber den Simulations-Verhältnis-Modellen bei der Arbitrierung zwischen mehreren VMs aufzeigt. Dies ist etwa bei PCIe- und Ethernet-VMs auf der gleichen Host-Workstation der Fall.

Wie erwartet, wird die OOB-PCIe-Performance nie gedrosselt. Wenn Ethernet und PCIe denselben Kanal für die Co-Modellierung nutzen, wird ein OOB-PCIe-VM die Taktrate der Ethernet VM sicherlich mehr beeinträchtigen als das Simulationsverhältnis zwischen den VM. Dies kann passieren, wenn sowohl Virtual Ethernet als auch Virtual PCIe auf demselben Co-Modellierungskanal laufen, um gleichzeitig mit dem DUT zu kommunizieren (Bild 3).

PCIe und Ethernet laufen aber meist getrennt voneinander. PCIe muss für die Konfiguration sehr schnell ablaufen, während die Ethernet-Taktrate nicht so wichtig ist. Die OOB-Performance wurde für VirtuaLAB PCIe optimiert. Das Hauptinteresse der meisten Kunden liegt aber auf dem Funktionsumfang von VirtuaLAB PCIe, zum Beispiel das Speichern/Wiederherstellen von Kontrollpunkten, dem Protokollanalysator, der Flexibilität und dem erweiterten Debugging.

Inhalt des Artikels:

Kommentar zu diesem Artikel abgeben

Schreiben Sie uns hier Ihre Meinung ...
(nicht registrierter User)

Kommentar abschicken
copyright

Dieser Beitrag ist urheberrechtlich geschützt. Sie wollen ihn für Ihre Zwecke verwenden? Infos finden Sie unter www.mycontentfactory.de (ID: 44829282 / Tools & Softwarekomponenten)