zerist a écrit :
Outre l'adressage mémoire, le fait que le CPU soit capable de traiter directement des nombres de 64 bits augmente un peu la puissance de calcul disponible ou non ?
J'ai toujours supposé que oui sans jamais en avoir la certitude
|
Réponse de Normand. Oui et non. Tout d'abord il est fort possible que ce que je dis soit en partie inexact ou incomplet, je n'ai pas d'expertise poussée sur cette partie.
Un cpu 64 bits aura des caches et des registres plus grands qu'un CPU 32 bits. Cela devrait mécaniquement augmenter ses performances dans une certaine mesure. Il aura aussi des instructions supplémentaires dédiées a faire des calculs sur des variables en 64 bits plutot qu'en 32 bits. Si le code de ton soft est bien en 64 bits, ton processeur fera donc du boulot sur plus de données a la fois.
Par contre, ca n'implique pas forcément que les opérations 32 bits et 64 bits du CPU ont la même vitesse. C'est une question très complexe de microarchitecture du CPU.
Exemple (non contractuel) :
Ton CPU 64 bits a 2 instructions : add_32 qui ajoute 2 variables 32 bits, et add_64, qui ajoute 2 variables 64 bits.
Si ton CPU prend 1 cycle pour exécuter add_32, et aussi 1 cycle pour exécuter add_64, alors tu peux dire qu'il y a un gain tangible : ton CPU fait effectivement "plus de boulot" dans le meme laps de temps
Si ton CPU prend 1 cycle pour exécuter add_32 mais 3 cycles pour exécuter add_64, tu es en fait perdant, vu qu'ajouter 2 chiffres de 64 bits avec des registres de 32 bits prend 2 opérations (2 cycles) : ajouter les 32 bits de poids faibles (première opération), puis ajouter les 32 bits de poids fort en portant le bit de retenue (2eme opération).
L'analogie débile c'est que ton CPU 64 bits est une brouette plus grande, donc tu peux porter plus de terre, mais encore faut il que porter une brouette remplie soit aussi rapide ou plus rapide que de porter deux demi brouettes.
Je sais qu'il y avait un certain nombres de cas ou les opérandes 64 bits étaient loin d'etre optimisées lors de la sortie des tout premiers CPU intel x86-64 , les dernieres révisions de Pentium 4 (donc en oubliant les Itanium, la premiere tentative d'Intel de faire du 64 bits propriétaire). Intel a retravaillé cela de fond en comble lors de la sortie des Core 2 Duo.