D
deineMudda
Gast
Theoretisch funktioniert dein Ansatz. Warum hat dann aber kein Hersteller so eine Lösung implementiert? Oft wird mit den langen Vorlaufzeiten für neue Mikroarchitekturen argumentiert. Das Argument ist aber nicht stichhaltig, die Intel Sicherheitslücken sind schon lange bekannt und trotzdem nicht alle hardwareseitig behoben. Es muss also andere Gründe geben. Die Hersteller schweigen sich zu dem Thema aus, aber ich habe mal darüber nachgedacht, warum das so ist und bin zu folgender Schlussfolgerung gekommen:GrumpyCat schrieb:Alle im Zuge der Bearbeitung in den Cache geladenen Daten invalidieren, um Timing-Attacken zu unterbinden². Und so weiter.
Ein Prozessor arbeitet in der Sekunde mehrere Milliarden Operationen ab. Natürlich könnte man nun erst mal alle Ergebnisse, die von out of order Ausführungen stammen zwischenspeichern und später prüfen, ob alle Bedingungen eingehalten wurden und der Befehl überhaupt zur Ausführung kommen sollte.
Das würde aber bedeuten, dass man jede Sekunde Milliarden von Ergebnissen zwischenspeichern muss. Doch nicht nur dass, man muss anschließend ebenfalls milliardenfach prüfen, ob der Befehl zur Ausführung kam. Dazu muss man wiederum so lange warten, bis der vorherige Befehl endgültig (also nicht out of order) ausgeführt wurde. Wenn der vorherige Befehl eine Bedingung mit Sprungbefehl enthält, muss zusätzlich wieder geprüft werden, ob der aktuelle Befehl nicht übersprungen worden ist. Letztendlich wartet man damit wieder auf den vorherigen Befehl. Der Sinn und Zweck von out of order ist aber, dass man die Befehle parallel ausführen kann.
Wenn der Befehl dann tatsächlich ausgeführt wurde, muss das Ergebnis vom Zwischenspeicher in den endgültigen Cache kopiert werden.
Das alles kostet wahrscheinlich soviel Energie, dass sich die Sache dann nicht mehr so richtig lohnen würde. Das ist zumindest das Ergebnis zu dem ich gekommen bin. Wenn man für eine simple Operation wie zum Beispiel eine Addition erstmal eine Bedingung prüfen und einen Zwischenspeicher befüllen muss, dann hat man von der Sache keinen Vorteil mehr.