3

On m'a dit que les programmes en cours d'exécution génèrent des données de probabilité utilisées pour optimiser les instructions répétées. Par exemple, si une structure de contrôle "if-then-else" a été évaluée TRUE 8/10 fois, alors la prochaine fois que l'instruction "if-then-else" est évaluée, il y a 80% de chances que la condition sera VRAI. Cette statistique est utilisée pour inviter le matériel à charger les données appropriées dans les registres en supposant que le résultat sera VRAI. L'intention est d'accélérer le processus. Si l'instruction est évaluée à TRUE, les données sont déjà chargées dans les registres appropriés. Si l'instruction est évaluée à FALSE, les autres données sont chargées et écrites simplement sur ce qui a été décidé "plus probable".
J'ai de la difficulté à comprendre comment les calculs de probabilité ne surpas- sent pas le coût de la performance des décisions qu'il essaie d'améliorer. Est-ce quelque chose qui arrive vraiment? Cela arrive-t-il au niveau du matériel? Y a-t-il un nom pour ça? Je peux avoir l'air de trouver des informations sur le sujet.optimisation dynamique des programmes en cours d'exécution

Répondre

4

Ceci est fait. C'est ce qu'on appelle la prédiction de branche. Le coût est non trivial, mais il est géré par un matériel dédié, de sorte que le coût est presque entièrement en termes de circuits supplémentaires - il n'affecte pas le temps nécessaire pour exécuter le code. Cela signifie que le coût réel serait celui d'une opportunité perdue, c'est-à-dire s'il existait une autre manière de concevoir une CPU qui utilisait cette quantité de circuits dans un autre but et en tirait plus de bénéfices. Ma conjecture immédiate est que la réponse est généralement non - la prédiction de branche est généralement tout à fait efficace en termes de retour sur investissement.

+0

prédiction de branchement. Ah merci. –

Questions connexes