QED ist ein skalierbarer Ansatz zur Verifizierung der Speicherkonsistenz in modernen Out-of-Order-Issue-Prozessoren.
Der Schlüssel zur Skalierbarkeit ist, dass QED nur direkt geordnete Befehlspaare und intervenierende externe Ereignisse betrachtet, anstatt alle in Bearbeitung befindlichen Befehle zu berücksichtigen. Außerdem muss QED nur die Reihenfolge der externen Ereignisse mit den Anweisungen des jeweiligen Kerns, nicht aber den Ursprung der Ereignisse, berücksichtigen.
QED verwendet einen beobachtbarkeitsbasierten Ansatz, bei dem überprüft wird, ob eine umgeordnete Ausführung, die bestimmte beobachtete Werte erzeugt, ohne Änderung der Werte in eine MCM-konforme Reihenfolge zurückgeführt werden kann. Wenn dies nicht möglich ist, liegt eine MCM-Verletzung vor.
QED unterteilt die Verifizierung in zwei Teile: Zunächst wird eine erschöpfende Exploration aller möglichen Befehlspaare und externer Ereignisse durchgeführt, die in einem Entscheidungsbaum von einfachen Prädikaten resultiert. Im zweiten Teil wird die RTL-Implementierung ausgewertet, um diese Prädikate zu überprüfen.
To Another Language
from source content
arxiv.org
Key Insights Distilled From
by Gokulan Ravi... at arxiv.org 04-05-2024
https://arxiv.org/pdf/2404.03113.pdfDeeper Inquiries