Ich weiß nicht, welcher Fall vorherrscht, aber ich möchte einige Gedanken zu Ihrem Vorschlag für Doppelpipelines machen.
Zunächst benötigen Sie den doppelten Draht, der die doppelte Energie verbraucht und im aktiven Zustand die doppelte Wärme erzeugt. Obwohl es nicht benötigt wird, wäre es völlig nutzlos. Man könnte also argumentieren, dass es keine gute Nutzung von Ressourcen ist, die auf modernen Prozessoren selten sind.
Woher wissen Sie, welche Version Sie schreiben müssen, es sei denn, Sie bevorzugen einen Zweig, der auf der Wahrscheinlichkeit basiert? Wenn keine, können Sie möglicherweise nichts speichern, da andere Prozessoren möglicherweise ohnehin auf Ihre Entscheidung warten müssen. Wenn Sie sich an einen von ihnen halten, haben Sie im Wesentlichen die gleiche Rollback-Wahrscheinlichkeit und die gleichen Kosten wie jetzt.
Lassen Sie uns eine grobe Berechnung durchführen. Nehmen wir der Einfachheit halber an, dass die Handhabung von zwei Pipelines anstelle von einer keinen zusätzlichen Verwaltungsaufwand verursacht. Die erwarteten Kosten (z. B. Energie, Wärme) sind C.= c + p ( cr+ c ) mit einer Pipeline ( die Kosten für die Ausführung einer der beiden Alternativen, p die Wahrscheinlichkeit für den Rollback und c r die Kosten für den Rollback ohne die Kosten für die Ausführung die andere Alternative) aber entweder 2 c oder sogar 2 c + p c r - entweder ist vielcpcr2 c2 c + p crgrößer als wenn p und c r relativ klein sind, und p ist es sicherlich (soweit ich weiß, haben moderne Verzweigungsvorhersagen Genauigkeiten über 90%). Und wir bekommen nicht viel für diese Kosten! Erwartete Ausführungszeiten sind t + p ( t r + t ) mit einer Pipeline und t resp. t + p t r mit zwei; Da p klein ist, ist die Zeitersparnis vernachlässigbar.C.pcrpt + p ( tr+ t )tt + p trp