52 votes

Pourquoi mon processeur double cœur est-il reconnu comme un processeur quadricœur ?

Mon processeur est un Intel Core i3-380m . Comme vous pouvez le voir, il s'agit de 2 cœurs et de 4 threads.

Cependant, Ubuntu 11.04 et Windows 7 semblent penser qu'il s'agit d'un processeur à quatre cœurs :

enter image description here

enter image description here

Pourquoi ? Est-ce parce qu'il y a 2 threads par cœur, ce qui divise l'unité centrale en 4 unités de traitement ?

48voto

Keltari Points 67159

La raison en est la suivante hyperthreading que votre processeur prend en charge. L'hyperthreading n'est pas l'équivalent d'un processeur supplémentaire, mais il peut réellement améliorer les performances des applications multithreads. Pour chaque cœur de processeur physiquement présent, le système d'exploitation adresse deux processeurs virtuels et répartit la charge de travail entre eux dans la mesure du possible.

43voto

Ana cleto Points 11

Comme indiqué, vous disposez d'un système à deux cœurs, avec 2 threads par cœur.

Il est commercialisé par Intel sous le nom de hyperthreading et a été réalisée de différentes manières au fil des ans par différents fabricants.

Pour l'expliquer sous sa forme la plus simple, chaque cœur de CPU est constitué d'un "cœur" et de diverses architectures autour de ce cœur qui conservent les informations sur l'état et le processus pour chaque thread. Un cœur à un seul thread possède l'architecture nécessaire pour conserver les informations d'état d'un seul thread à la fois, tandis qu'un cœur hyperthreadé conserve deux ensembles distincts d'informations d'état, ce qui permet à deux processus distincts de s'exécuter en même temps tant qu'ils requièrent des parties différentes du cœur (ce qui est raisonnablement susceptible de se produire puisque le cœur est constitué de plusieurs unités de plusieurs types différents d'unités de traitement).

Pour simplifier la perception de l'unité centrale par le système, chaque hyperthread est considéré comme une unité centrale distincte, de sorte qu'un processeur à deux cœurs et à deux threads par cœur apparaît comme un processeur à quatre cœurs.

Il est également possible que le système d'exploitation utilise Core-parking (une fonction des nouveaux processeurs Intel) permet au système d'exploitation de suspendre la moitié d'un cœur hyperthreadé de sorte que lorsque la capacité de traitement supplémentaire de l'hyperthreading n'est pas nécessaire, les performances d'un seul thread sont améliorées car le cœur ne partage plus son cache entre deux threads et peut maintenant consacrer entièrement le cache on-core à un seul thread.

12voto

Thomi Points 5434

Les choses sont beaucoup plus complexes qu'elles ne l'étaient à l'époque d'une instruction du processeur par cycle d'horloge.

Il y a maintenant un canalisation pour chaque instruction composée d'un certain nombre d'étapes. J'ai entendu dire qu'il y en avait jusqu'à 41, mais c'était il y a longtemps et je n'ai aucune idée de ce à quoi ressemblent les pipelines actuels des processeurs. Je sais que si le pipeline est suffisamment long, vous pouvez commencer une nouvelle instruction avant que la dernière instruction ne soit terminée, parfois dans le même cycle d'horloge, de sorte que votre cœur unique fait effectivement deux choses à la fois.

Mais il y a une astuce. Vous ne pouvez pas utiliser cette fonction pour accélérer la vitesse à laquelle votre processeur traite les instructions d'un programme spécifique. Un problème de correction se pose : l'instruction suivante peut dépendre du résultat encore indéterminé de l'instruction précédente. Pour tirer parti du long pipeline en toute sécurité Dans ce cas, la puce présentera deux cœurs de processeur distincts au planificateur du système d'exploitation et alternera les instructions envoyées à chaque cœur de façon à ce que deux instructions destinées au même "cœur" ne se trouvent jamais en même temps dans le pipeline. De cette manière, nous pouvons être sûrs que les instructions exécutées simultanément n'interféreront pas entre elles. C'est ce qu'on appelle hyperthreading .

Il convient de noter ici que si l'hyperthreading peut augmenter de manière significative la quantité de travail que vous obtenez de votre processeur, il est loin d'être aussi efficace que de disposer d'un nombre aussi élevé de cœurs physiques. En fonction de votre charge de travail, l'amélioration peut être de l'ordre de 15 % ou de 40 %. Dans certaines circonstances, vous pouvez même désactiver cette fonction afin que les autres cœurs aient un accès exclusif au cache L1/L2 pour ce cœur (c'est parfois le cas avec les serveurs de base de données dédiés).

Lorsque votre puce est annoncée comme ayant 2 cœurs avec 4 threads, cela signifie qu'il s'agit d'un processeur double cœur qui prend en charge l'hyperthreading.

2voto

woliveirajr Points 4110

Jetez un coup d'œil sur cette page d'Intel - Il contient de nombreuses animations montrant comment l'hyperthreading accélère vos tâches.

En Utilization of Processor Resources est la meilleure animation, regardez-la et cliquez ensuite sur le bouton "avancer".

1voto

Pam Points 1

Comment cela se fait-il ? Est-ce parce qu'il y a 2 threads par cœur, ce qui divise l'unité centrale en 4 unités de traitement ? CPU en 4 unités de traitement ?

Pour simplifier, la réponse est oui. Chaque cœur de votre processeur peut supporter deux threads indépendants, soit 4 au total. Mais cela ne signifie pas qu'il a les mêmes performances qu'un processeur quadricœur à un seul thread. En pratique, les performances d'un processeur double cœur à deux threads sont inférieures à celles d'un processeur quadricœur à un seul thread. Comme le Phenom X4 d'AMD.

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X