Zephyrnet-Logo

Petri-Netze validieren DRAM-Protokolle. Innovation in der Verifizierung

Datum:

Ein Petri-Netze-Blog erzielte letztes Jahr die meisten Engagements. Diesen Monat besprechen wir die Anwendung der Technik zur Validierung eines wachsenden Bereichs von JEDEC-Speicherstandards. Paul Cunningham (Senior VP/GM, Verification bei Cadence), Raúl Camposano (Silicon Catalyst, Unternehmer, ehemaliger CTO von Synopsys und jetzt CTO von Silvaco) und ich setzen unsere Reihe zu Forschungsideen fort. Feedback wie immer erwünscht.

Petri-Netze validieren DRAM-Protokolle

Die Innovation

Die Auswahl dieses Monats ist Schnelle Validierung von DRAM-Protokollen mit zeitgesteuerten Petri-Netzen. Die Autoren stellten das Papier auf der MEMSYS-Konferenz 2019 vor und stammen von Fraunhofer und der TU Kaiserslautern in Deutschland.

JEDEC-Standards für Speicherprotokolle beschreiben die Komplexität von Befehlsverhalten und Timing durch eine Mischung aus Zustandsmaschinendiagrammen, Tabellen und Timing-Diagrammen. Die Validierung einer Implementierung durch Simulation hängt von der Erstellung aussagekräftiger Tests und Prüfungen durch manuellen Vergleich mit dem Standarddokument ab. JEDEC selbst erkennt an, dass ihre Referenz auf der Grundlage einer Kombination aus FSMs, Tabellen und Zeitdiagrammen nicht vollständig ist und die automatische Testgenerierung problematisch macht. Dieses Dokument verwendet Timed Petri Nets, um ein vollständiges Modell der DRAM-Zustände, der logischen Befehlsabhängigkeiten und der internen Zeitabhängigkeiten des zu testenden Systems bereitzustellen, aus dem ein vollständiges SystemC-Referenzmodell automatisch generiert und als Referenz mit gängigem DRAM verwendet werden kann Simulatoren zur Überprüfung.

Zusätzlich zum Wert der Ideen bietet dieses Papier eine nützliche Einführung in die Mechanik des DRAM-Betriebs für Anfänger wie mich!

Pauls Ansicht

Dies ist ein leicht lesbares, eigenständiges Dokument, das ein großartiges Beispiel für die Möglichkeiten domänenspezifischer Sprachen in Design und Verifizierung bietet. In diesem Beitrag gehen die Autoren das Problem der Verifizierung von DDR-Schnittstellen an. Sie bauen auf dem Stand der Technik auf, der das DDR3-Protokoll unter Verwendung eines Petri-Netzes beschreibt, einer wunderbaren graphbasierten Notation zur visuellen Darstellung von Interaktionen zwischen gleichzeitigen Zustandsmaschinen.

Der Hauptbeitrag der Autoren besteht darin, diesen Stand der Technik zu einem „zeitgesteuerten“ Petrinetz aufzurüsten, das zusätzliche Bögen und Anmerkungen enthält, um die zeitlichen Abhängigkeiten zwischen Befehlen im DDR-Protokollstandard zu modellieren. Sie erstellen eine nette kleine Textsprache, DRAMml, um diese Timed Petri Nets zu beschreiben, die in der Lage ist, das vollständige DDR3-Befehlsprotokoll auf einer Seite darzustellen. Hübsch!

Sie entwickeln auch einen Compiler für DRAMml, um simulierbaren SystemC-Code zu generieren, der als „goldenes“ Modell als Referenz zur Verifizierung verwendet werden kann. Als letztes i-Tüpfelchen verwenden sie ihr goldenes Modell, um einen Fehler in DRAMsys zu finden, einem in der Literatur viel zitierten beliebten DRAM-Simulator. Mich würde wirklich interessieren, ob diese Arbeit auf andere Protokolle wie PCIe oder Ethernet angewendet werden könnte.

Raúls Ansicht

Dies ist die erste Veröffentlichung zur Validierung dynamischer Speichercontroller für DDR, die wir in dieser Reihe besprochen haben. JEDEC hat seit der ursprünglichen DDR im Jahr 19 2000 Standards herausgegeben, darunter DDR5 und HBM3. Es ist leicht einzusehen, dass die Spezifikation solcher Speicher – mit mehreren Bänken, 212 zu 218 Reihen, wo jede Reihe 512 B bis 2 KB Daten speichern kann, Anforderungen zum Aufladen, Auffrischen – können sehr komplex werden, insbesondere in Bezug auf die Timing-Anforderungen. Als Beispiel führen die Autoren an, dass zur Modellierung des vollständigen Zustandsraums eines DDR4 mit 16 Bänken 65,536 Zustände mit über einer Milliarde Übergängen erforderlich sind.

Um Speicherspezifikationen zu vereinfachen und zu formalisieren, baut das Papier Modelle mit erweiterten Petri-Netzen auf. Petrinetze sind zweigeteilte Graphen mit Stellen und Übergängen, die durch gewichtete gerichtete Bögen verbunden sind (Abschnitt 3.2). Sie werden erweitert um:

-> [t1, t2] timed-arc mit guard [t1,t2] bedeutet, dass der Übergang nur in diesem Zeitintervall ausgelöst werden kann

- >>            Reset-Bogen, der einen Platz von allen Token löscht

-o              Inhibitor-Lichtbogen, der einen Übergang zum Feuer verhindert

Mit solchen Erweiterungen werden Petri-Netze so leistungsfähig wie Turing-Maschinen. Diese Petri-Netze modellieren DRAMs mit angemessener Komplexität, z. B. 4 Plätze und 8 Übergänge, plus einen Platz und 6 Übergänge pro Bank. Leistung kann direkt modelliert werden; Das Timing wird etwas komplizierter und erfordert auch Timing-Abhängigkeiten zwischen Übergängen.

Das Papier fährt dann damit fort, eine DSL (domänenspezifische Sprache) namens DRAMml zu definieren, die die MPS-Software von Jetbrains verwendet, um dieses Petri-Netz zu beschreiben und es in SystemC umzuwandeln. Das generierte ausführbare Modell wurde mit mehreren DRAM-Simulatoren simuliert, nämlich DRAMsim2, DRAMsys, Ramulator und dem DRAM-Controller in gem5, wobei eine Timing-Verletzung in DRAMsys aufgedeckt wurde.

Ich fand die Arbeit interessant und gut lesbar, da ich vorher auch mit Petri-Netzen gearbeitet habe. Das genaue Befolgen der DRAM-Spezifikationen ist eher etwas für Spezialisten, kann aber lehrreich sein. Die Behauptung, dass „DRAMml, das alle Timing-, Zustands- und Befehlsinformationen der JEDEC-Standards in einem formalen, kurzen, umfassenden, lesbaren und verständlichen Format beschreibt“ ist nicht offensichtlich. Es erfordert das Verständnis von Petri-Netzen, was trotz verbesserter Einfachheit und Ausdruckskraft ein Hindernis für die Annahme der Methodik sein kann. Es wäre interessant zu wissen, was JEDEC von diesem Ansatz hält, da es ihnen im Prinzip ermöglichen sollte, definitive Referenzmodelle für neue Standardversionen bereitzustellen oder zumindest zu bauen.

Teile diesen Beitrag über:

spot_img

Neueste Intelligenz

spot_img