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
3
A
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.
Questions connexes
- 1. Détermination des programmes en cours d'exécution en Python
- 2. Liste des programmes en cours sous Linux en utilisant Java
- 3. branches git et programmes en cours d'exécution
- 4. Déterminez les programmes node.js en cours d'exécution
- 5. en cours d'exécution programmes cmd besoins chemin
- 6. programmes en cours d'exécution en parallèle, lecture/écriture en C
- 7. Sous-activité confusion. Plusieurs programmes en cours de compilation
- 8. Optimisation des en-têtes
- 9. en cours VB et C# programmes dans Ubuntu
- 10. Comment puis-je supprimer un bureau Win32 avec des programmes en cours d'exécution et mettre fin à ces programmes?
- 11. Optimisation de la requête SQL dynamique
- 12. Optimisation dynamique des images dans un site Web MVC 3
- 13. problèmes en cours d'exécution des programmes utilisant le terminal de commande
- 14. Comment les DLL sont-elles mappées dans l'espace d'adressage virtuel des programmes en cours?
- 15. Optimisation des rails Question
- 16. Sql Server optimisation des requêtes
- 17. mysql optimisation des requêtes
- 18. Optimisation des requêtes
- 19. PHP dynamique inclure, en fonction chemin du fichier en cours
- 20. programme exécutant des programmes en python
- 21. Comment ouvrir des programmes en utilisant AutoHotKey?
- 22. Comment exécuter des programmes parallèles en python
- 23. Structure des programmes?
- 24. Débogage des programmes multiprocessus
- 25. Déterminez les programmes en cours d'exécution en utilisant le fichier batch et fermez-les
- 26. Mise en page dynamique setLayoutParams non en cours
- 27. Benchmarking des programmes Java
- 28. Correctly obtenir libuv en cours d'exécution afin que les programmes peuvent être compilés en utilisant
- 29. exécuter des programmes avec le couple
- 30. Optimisation d'assembleur Intel
prédiction de branchement. Ah merci. –