donend schrieb:
...
Zen ist Intels Arch jedenfalls näher als du es glaubst ("Sprungvorhersage") und hier abwiegelnd darstellst...
Nein. Du verwechselst hier etwas...die Qualität der Sprungvorhersage bei der Zen-Architektur ist gegenüber Bulldozer stark verbessert worden. (Qualität heisst die "Treffergenauigkeit" einer korrekten Vorhersage). Die Qualität ist nun ca. auf dem Niveau wie auch Intel.
Die ART und WEISE wie diese funktioniert ist aber immer noch sehr deutlich verschieden von der bei Intel.
Das ist auch der Grund warum es eben nicht so einfach ist den Spectre V2 PoC von Intel auf AMD zu übertragen....die Branch Predictions arbeiten einfach zu unterschiedlich.
Nachzulesen z.B.
Hier in Kapitel 2.8 Um an die Intel Infos ranzukommen muss man aber leider sich beim Intel-Dev programm anmelden.
Aber
Ars Technica hat hierzu damals geschrieben wie das ungefähr läuft und das es eben deutlich unterschiedlich zu AMD ist.
Allerdings hat sich AMD mal lieber nicht zu 100% festgelegt und daher Spectre V2 mit "near zero risk" und als grundsätzlich auch auf AMD anwendbar beschrieben. Denn es kann halt schon sein dass man auch den Predictor von AMD aushebeln kann und darauf basierend einen side-channel ausführen kann.
Bei Meltdown gehen sie immer noch davon aus, dass es auf Zen wegen Architekturunterschied nicht ausführbar sein soll, weil es bisher nicht simuliert werden konnte. Das ein absoluter Schutz besteht haben sie im Nachgang nicht behauptet.
Ehm. Doch. Meltdown ist auf AMD NICHT Ausführbar weil AMD auch beim Speculativen bzw. OoO Ausführen den Rechte-Flag prüft. EDIT: das hat AMD auch schon immer so kommuniziert siehe:
https://www.amd.com/en/corporate/security-updates /EDIT
Ein Feature dass quasi kaum Performance kostet aber bei Intel nicht gemacht wird. Worüber sich selbst Intel-Developer im Nachgang sehr erstaunt zeigten:
Siehe Post von
: McCalpin, John Tue, 01/16/2018 - 12:21 auf diesem Intel-Developer Blog:
https://software.intel.com/en-us/forums/intel-c-compiler/topic/754601
"Meltdown could be considered a design flaw in the OS, but it was really a team effort between the hardware and software.
The Intel hardware does maintain zero-order protection across protection domains, but fails to prevent speculative execution from using protected data to make reliably detectable changes in the cache state. This provides a high-bandwidth covert channel for reading protected data.
AMD was right to block this case before execution (since there is no case in which the memory access would be allowed to complete, allowing it to execute speculatively provides no benefits). Ironically, Intel's TSX extensions provide a large increase in the throughput of the Meltdown attack, as well as eliminating the exceptions that could be monitored by the OS."
Auch die weiteren Beiträge von John McAlpin sind sehr aufschlussreich.
Weiter unten führt er dann genauer aus wieso Meltdown @AMD kein Thema ist:
"
The speculative read is a good optimization feature -- unless it can be proven that it can never be successful!
This is the benefit of the AMD implementation.
The core knows what mode it is operating in (user or kernel), and the Page Table Entry has a bit that says that user-mode access is not allowed"
Das könnte man auch als Indiz dafür werten warum Spectre V2 auf AMD schwerer einsetzbar ist...offenbar unterscheidet AMD erstmal mit speculative read ob bestimmte Befehle ausgeführt werden dürfen (user space <-> Kernel space etc.) und erst wenn das als OK befunden wird kommt tatsächliche die speculative execution.
Bei Intel wird einfach direkt ausgeführt was der Predictor spekulativ meint gut zu sein....und hinterher kann man den Scherbenhauen eben nicht mehr kitten.