Perché Apple Activity Monitor riporta che il mio Mac con una CPU Intel i5 Ivy Bridge dual-core ha 4 core?


12

Ho appena ricevuto un nuovo Apple MacBook Pro 13 ", metà 2012, che ha una CPU Intel i5 Ivy Bridge dual-core. Quando eseguo Activity Monitor e accendo la finestra della CPU mobile, mostra un grafico a 4 barre (che indica 4 core).

Sul mio MacBook Pro più vecchio con un processore dual core Intel Core 2 Duo, Activity Monitor mostrava solo un grafico a 2 barre (che indica 2 core).

Perché Activity Monitor sembra indicare che il mio Mac ha 4 core, quando chiaramente no?


4
Penso che questa sia la tua risposta: superuser.com/questions/216110/…
Saaru Lindestøkke,

Risposte:


22

Questa è una tecnologia chiamata Hyperthreading che supporta i chip i5.

Significa che due thread possono essere eseguiti simultaneamente su ciascun core risultando in due core virtuali aggiuntivi . Activity Monitor di OS X mostra solo core virtuali, non core fisici . Allo stesso modo, un chip quad-core ha otto core virtuali ed è quello che viene presentato in Activity Monitor.

Riassumendo:

  • 1 CPU
  • 2 core fisici
  • 4 core virtuali (2 per core fisico)

OK, ma ... Se due thread possono essere eseguiti contemporaneamente, ogni thread può funzionare solo alla metà della velocità normale, no? E dico il massimo , la legge di Amdahl arriva ...
Nicolas Barbulesco,

Non così ... l'esecuzione di un'istruzione comporta più passaggi (lettura dalla memoria, impostazione dei registri, esecuzione, memorizzazione dei risultati, cambio di contesto, ecc.) L'hperthreading consente a 2 thread di essere eseguiti contemporaneamente in diverse fasi del processo senza perdere velocità.
Base

Questo comportamento è dovuto alla tecnologia SMP di Intel, che chiamano "hyper-threading", come sottolineato da @kremalicious. Inoltre, è importante sottolineare che l'hyper-threading non si riferisce alla pipeline (come suggerito da @Basic), ma superscalare. Ecco un semplice esempio per comprendere l'architettura superscalare: invece di un'unità aritmetica, abbiamo, diciamo, due copie della stessa (una per ogni nucleo virtuale), in modo che i calcoli possano essere eseguiti in parallelo su operandi di dati diversi. Pertanto, i core virtuali non condividono il tempo p
AmanNoug

@AmanNoug Hai perfettamente ragione. Errore mio.
Base
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.