Pourquoi Apple Activity Monitor signale-t-il que mon Mac doté d'un processeur Intel i5 Ivy Bridge double cœur possède 4 cœurs?

12

Je viens de recevoir un nouveau Apple MacBook Pro 13 ", mi-2012, doté d'un processeur Intel i5 Ivy Bridge double cœur. Lorsque j'exécute Activity Monitor et active la fenêtre flottante du processeur, il affiche un graphique à 4 barres (indiquant 4 noyaux).

Sur mon ancien MacBook Pro avec un processeur double cœur Intel Core 2 Duo, Activity Monitor n'affichait qu'un graphique à 2 barres (indiquant 2 cœurs).

Pourquoi Activity Monitor semble-t-il indiquer que mon Mac possède 4 cœurs, alors que ce n'est clairement pas le cas?

Cajunluke
la source
4
Je pense que c'est votre réponse: superuser.com/questions/216110/…
Saaru Lindestøkke

Réponses:

22

Il s'agit d'une technologie appelée Hyperthreading supportant ces puces i5.

Cela signifie que deux threads peuvent s'exécuter simultanément sur chaque cœur, ce qui entraîne deux cœurs virtuels supplémentaires . Le moniteur d'activité d'OS X affiche uniquement les cœurs virtuels, pas les cœurs physiques . De même, une puce quadricœur a huit cœurs virtuels et c'est ce qui est présenté dans Activity Monitor.

Résumer:

  • 1 CPU
  • 2 noyaux physiques
  • 4 cœurs virtuels (2 par cœur physique)
kremalicious
la source
D'accord, mais… Si deux threads peuvent fonctionner en même temps, chaque thread ne peut fonctionner qu'à la moitié de la vitesse normale, non? Et je dis au maximum , la loi d'Amdahl entre en jeu ...
Nicolas Barbulesco
Pas si ... l'exécution d'une instruction implique plusieurs étapes (lecture dans la mémoire, définition de registres, exécution, stockage des résultats, changement de contexte, etc.) hperthreading permet à 2 threads de s'exécuter simultanément à différentes étapes du processus sans perte de vitesse.
Basic
Ce comportement est dû à la technologie SMP d'Intel, qu'ils appellent «Hyper-threading», comme l'a souligné @kremalicious. Il est également important de souligner que l'hyper-threading ne concerne pas le pipelining (comme suggéré par @Basic), mais superscalaire. Voici un exemple simple pour comprendre l'architecture superscalaire: au lieu d'une unité arithmétique, nous avons, par exemple, deux copies de la même (une pour chaque noyau virtuel), afin que les calculs puissent être effectués en parallèle sur différents opérandes de données. Par conséquent, les cœurs virtuels ne partagent pas le temps p
AmanNoug
@AmanNoug Vous avez tout à fait raison. Mon erreur.
Basic