¿Por qué Apple Activity Monitor informa que mi Mac con una CPU Intel i5 Ivy Bridge de doble núcleo tiene 4 núcleos?

12

Acabo de recibir una nueva Apple MacBook Pro 13 ", a mediados de 2012, que tiene una CPU Intel i5 Ivy Bridge de doble núcleo. Cuando ejecuto el Monitor de actividad y enciendo la ventana de CPU flotante, muestra un gráfico de 4 barras (que indica 4 núcleos).

En mi MacBook Pro anterior con un procesador Intel Core 2 Duo de doble núcleo, el Monitor de actividad solo mostraba un gráfico de 2 barras (que indica 2 núcleos).

¿Por qué el Monitor de actividad parece indicar que mi Mac tiene 4 núcleos, cuando claramente no?

Cajunluke
fuente
44
Creo que este es su anwer: superuser.com/questions/216110/...
saaru Lindestøkke

Respuestas:

22

Esta es una tecnología llamada Hyperthreading compatible con esos chips i5.

Significa que dos subprocesos pueden ejecutarse simultáneamente en cada núcleo, lo que resulta en dos núcleos virtuales adicionales . El Monitor de actividad de OS X solo muestra núcleos virtuales, no núcleos físicos . Del mismo modo, un chip de cuatro núcleos tiene ocho núcleos virtuales y eso es lo que se presenta en Activity Monitor.

Para resumirlo:

  • 1 CPU
  • 2 núcleos físicos
  • 4 núcleos virtuales (2 por núcleo físico)
kremalicious
fuente
OK, pero ... Si dos hilos pueden correr al mismo tiempo, cada hilo solo puede correr a la mitad de la velocidad normal, ¿no? Y digo máximo , la ley de Amdahl entra en
juego
No es así ... la ejecución de una instrucción implica múltiples pasos (leer de la memoria, establecer registros, ejecutar, almacenar resultados, cambio de contexto, etc.) hperthreading permite que se ejecuten 2 subprocesos en diferentes etapas del proceso simultáneamente sin perder velocidad.
Básico
Este comportamiento se debe a la tecnología SMP de Intel, que denominan "Hyper-threading", como lo señala @kremalicious. También es importante señalar que Hyper-threading no se relaciona con la canalización (como lo sugiere @Basic), sino con el superescalar. Aquí hay un ejemplo simple para comprender la arquitectura superescalar: en lugar de una unidad aritmética, tenemos, por ejemplo, dos copias de la misma (una para cada núcleo virtual), de modo que los cálculos se pueden hacer en paralelo en diferentes operandos de datos. Por lo tanto, los núcleos virtuales no comparten el tiempo p
AmanNoug
@AmanNoug Tienes toda la razón. Mi error.
Básico