3

Mir wurde gesagt, dass laufende Programme Wahrscheinlichkeitsdaten erzeugen, die verwendet werden, um wiederholte Anweisungen zu optimieren.
Zum Beispiel, wenn eine "wenn-dann-sonst" -Steuerungsstruktur WAHR 8/10 mal ausgewertet wurde, dann besteht beim nächsten Mal, wenn die "if-then-else" -Anweisung ausgewertet wird, eine Wahrscheinlichkeit von 80% wird WAHR sein. Diese Statistik wird verwendet, um die Hardware aufzufordern, die entsprechenden Daten in die Register zu laden, wobei davon ausgegangen wird, dass das Ergebnis WAHR ist. Die Absicht ist, den Prozess zu beschleunigen. Wenn die Anweisung als TRUE ausgewertet wird, sind die Daten bereits in die entsprechenden Register geladen. Wenn die Anweisung FALSE ergibt, werden die anderen Daten geladen und einfach über das, was als "wahrscheinlicher" entschieden wurde, geschrieben.
Es fällt mir schwer zu verstehen, wie die Wahrscheinlichkeitsberechnungen die Leistungskosten von Entscheidungen, die es zu verbessern versucht, nicht übertreffen. Ist das etwas, was wirklich passiert? Tritt es auf einer Hardwareebene auf? Gibt es einen Namen dafür? Ich kann scheinen, irgendwelche Informationen über das Thema zu finden.dynamische Optimierung laufender Programme

Antwort

4

Dies ist erledigt. Es heißt Verzweigungsvorhersage. Die Kosten sind nicht trivial, aber es wird von dedizierter Hardware gehandhabt, so dass die Kosten fast ausschließlich in Bezug auf zusätzliche Schaltungen sind - es beeinflusst nicht die Zeit, die zur Ausführung des Codes benötigt wird. Das bedeutet, dass die tatsächlichen Kosten eine verlorene Chance wären - d. H. Wenn es eine andere Möglichkeit zum Entwerfen einer CPU gäbe, die diese Menge an Schaltungen für einen anderen Zweck verwendet und mehr davon gewonnen hat. Meine unmittelbare Vermutung ist, dass die Antwort ist in der Regel keine - Branchenprognose ist in der Regel durchaus in Bezug auf den Return on Investment wirksam.

+0

Verzweigungsprognose. ah, Danke. –