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.