Quelle architecture pour Intel Dual-Core E5300

Bonjour à tous,

Une question (idiote ?) me taraude depuis pas mal de temps.
J’ai un CPU Intel Dual-Core E5300 monté sur une carte mère MSI GM31TP-P21. Une Debian 8 i686 tourne correctement dessus.
Lorsque je lis le descriptif du CPU, je vois que l’architecture a en fait un jeu d’instruction en 64-bit.
D’après vous, devrais-je installer de préférence ma distrib préférée en amd64 ou rester en i686 ?

Absolument, puisque l’architecture 64bit est supportée. :wink:

1 J'aime

Tout est écrit là !

Merci pour vos réponses, je savais bien que la question était idiote. Cependant, n’étant pas un grand connaisseur en architecture CPU, pourriez-vous m’éclairer : en quoi vais-je y gagner en utilisant un amd64/i686 (rapidité, stabilité, autre) pour un CPU âgé comme le mien ?

Cela n’a rien à avoir avec l’âge du processeur mais avec le système de jeu d’instructions avec lequel il travaille : pour cela je ne peux que te renvoyer vers ton moteur de recherche préféré et regarder quelles sont les différences entre 32 et 64 bits… Faire un éloge ici serait équivalent à réécrire un manuel, je pense que tu comprends.

Le gain, s’il existe, sera probablement minime. Un système amd64 est surtout intéressant pour gérer plus de 8 Gio de RAM. Est-ce le cas de cette machine ?

Si, quand même un peu : j’ai lu quelque part que les premiers processeurs d’Intel compatibles amd64 (de la famille Pentium 4) étaient si peu performants en mode 64 bits qu’Intel a dû doubler la mémoire cache pour qu’ils rattrappent les performances du mode 32 bits.

Ah ça je ne savais pas, mais bon ça ne doit pas le concerner.

Je n’ai que 4Go de RAM, et d’après les spécifications de la carte mère, je ne peux aller plus haut.

Du coup, j’ai bien compris que mon CPU était compatible amd64, cela vaut-il le coup ? (je m’accroche hein :wink: )

Salut,

Je n’ai pas autre chose qu’hydrogen (une dérivée Debian) sous la main, mais voici l’utilisation de la ram, juste après démarrage :

  • pour une installation 32 bits (non-pae)
    harpo@hydrogen:~$ uname -a
    Linux hydrogen 3.16.0-4-586 #1 Debian 3.16.7-ckt25-2 (2016-04-08) i686 GNU/Linux
    harpo@hydrogen:~$ free -m
    total used free shared buffers cached
    Mem: 3476 295 3180 43 22 171
    -/+ buffers/cache: 101 3374
    Swap: 1027 0 1027

  • la même en 64 bits :
    harpo@hydrogen64:~$ uname -a
    Linux hydrogen64 3.16.0-4-amd64 #1 SMP Debian 3.16.36-1+deb8u1 (2016-09-03) x86_64 GNU/Linux
    harpo@hydrogen64:~$ free -m
    total used free shared buffers cached
    Mem: 3764 441 3323 44 29 205
    -/+ buffers/cache: 206 3558
    Swap: 1758 0 1758

Donc ça passe de 101 Mo à 206 Mo.

Evidemment, si tu passes ton temps à faire des calculs en haute précision, ce sera un peu plus rapide en 64 bits qu’en 32 bits. Mais en même temps, si jamais ça commence à swaper parce que la ram est saturée (plus vite en 64 bits qu’en 32 bits), tu perds, et de loin, le temps gagné…

Difficile à prédire. Du côté des plus :

  • utilisation d’améliorations propres aux processeurs plus récents que le Pentium Pro (686)
  • simplification du modèle mémoire au delà de 1 Gio de RAM avec la suppression des zones de mémoire “haute” et “basse”.
  • allocation de mémoire virtuelle par processus pouvant dépasser 2 Gio
  • opérations entières sur 64 bits plus rapides, pouvant accélérer les opérations comme la compression/décompression ou le chiffrement.
    Du côté des moins :
  • les adresses et pointeurs sur 64 bits prennent plus de place à stocker, augmentant l’occupation mémoire des programmes et toutes les conséquences qui en découlent

Pourquoi le noyau non PAE ? Du coup avec 4 Gio de RAM, la partie de la RAM remappée au delà de la barrière de 4 Gio (pour laisser un “trou” pour l’adressage en mémoire des périphériques comme la mémoire de la carte graphique) n’est pas utilisable par ce noyau, comme on peut le voir en comparant les sorties de free. D’autre part ce noyau ne gère pas le multi-processeur (incluant le multi-coeur et l’hyperthreading).

L’unité de calcul en virgule flottante en mode 64 bits a plus de précision qu’en mode 32 bits ?

non PAE parce que c’est sur un disque usb qui sert aussi sur un pentium III, 384 Mo de ram… En fait ça peut démarrer sur n’importe quoi (ici sur un core i5)…

De manière générale, le noyau non pae me paraît plus adapté chaque fois qu’il est hors de question d’atteindre 4 Go. Pourquoi faire tourner une fonction inutile (le noyau pae fait 200 Ko de plus, 7%, que le non pae, ce qui fait potentiellement pas mal d’instructions machine supplémentaires… pour rien) ?

L’unité de calcul n’est sans doute pas plus précise, mais en 32 bits, pour effectuer le même calcul, il faut au moins 2 fois plus d’instructions machine qu’en 64 bits. Au moins pour les lectures/écritures en ram. Donc ça prend fatalement un peu plus de temps… Il me semble en tous cas…

Le support de PAE n’est pas la seule fonctionnalité qui est désactivée dans le noyau -586 de Jessie : il manque également le support du multiprocesseur sous toutes ses formes comme je l’ai écrit précédemment. Néanmoins il semble que le noyau -686 sans PAE de la prochaine version de Debian, Stretch, supporte le multiprocesseur.
D’autre part, PAE est nécessaire pour tirer parti du bit NX/XD (prévention d’exécution de segments de données) qui améliore la sécurité.

Concernant la lecture/écriture en RAM ça n’ira ni plus ni moins vite si la quantité de données à lire ou écrire est identique dans les deux cas puisque depuis le Pentium le processeur et la RAM ont déjà un bus de données de 64 bits voire 128 bits dans le cas du dual channel, et on est limité par la vitesse de la RAM.

Quant au nombre d’instructions, il faut préciser de quoi tu parles.
Soit tu parles de calculs sur des entiers, faisant appel à l’unité arithmétique et logique (ALU) du processeur et effectivement il faudra deux instructions sur une ALU 32 bits pour faire un calcul sur 64 bits contre une seule sur une ALU 64 bits. Mais 64 bits, ce n’est pas vraiment ce que j’appelle de la “haute précision”.
Soit tu parles de calculs en virgule flottante, faisant appel à l’unité de calcul en virgule flottante (FPU, auparavant coprocesseur mathématique x87), mais la FPU de l’architecture IA32 supporte déjà un format étendu sur 80 bits et je ne pense pas que l’architecture AMD64 y apporte quoi que ce soit de plus.