Por que o Apple Activity Monitor relata que meu Mac com CPU Intel i5 Ivy Bridge de núcleo duplo possui 4 núcleos?

12

Acabei de adquirir um novo Apple MacBook Pro 13 ", meados de 2012, que possui uma CPU Intel i5 Ivy Bridge de núcleo duplo. Quando executo o Activity Monitor e ligo a Janela da CPU flutuante, ele mostra um gráfico de 4 barras (indicando 4 núcleos).

No meu MacBook Pro mais antigo, com um processador Intel Core 2 Duo de núcleo duplo, o Activity Monitor mostrou apenas um gráfico de 2 barras (indicando 2 núcleos).

Por que o Activity Monitor parece indicar que meu Mac possui 4 núcleos, quando claramente não possui?

Cajunluke
fonte
4
Eu acho que esta é sua resposta: superuser.com/questions/216110/…
Saaru Lindestøkke

Respostas:

22

Esta é uma tecnologia chamada Hyperthreading suportada pelos chips i5.

Isso significa que dois threads podem ser executados simultaneamente em cada núcleo, resultando em dois núcleos virtuais adicionais . O Monitor de Atividade do OS X mostra apenas núcleos virtuais, não núcleos físicos . Da mesma forma, um chip quad-core possui oito núcleos virtuais e é isso que é apresentado no Activity Monitor.

Resumindo:

  • 1 CPU
  • 2 núcleos físicos
  • 4 núcleos virtuais (2 por núcleo físico)
kremalicious
fonte
OK, mas ... Se dois threads puderem rodar ao mesmo tempo, cada thread poderá rodar apenas na metade da velocidade normal, não? E eu digo o máximo , a lei de Amdahl entra em ...
Nicolas Barbulesco 01/12/13
Não é assim ... a execução de uma instrução envolve várias etapas (leitura da memória, configuração de registros, execução, armazenamento de resultados, alternância de contexto etc.). O hperthreading permite que 2 threads sejam executados em diferentes estágios do processo simultaneamente sem perder velocidade.
básico
Esse comportamento é devido à tecnologia SMP da Intel, que eles chamam de "Hyper-threading", conforme apontado por @kremalicious. Também é importante ressaltar que o Hyper-threading não está relacionado ao pipelining (como sugerido por @Basic), mas superescalar. Aqui está um exemplo simples para entender a arquitetura superescalar: Em vez de uma unidade aritmética, temos, digamos, duas cópias da mesma (uma para cada núcleo virtual), para que os cálculos possam ser feitos em paralelo em diferentes operandos de dados. Portanto, os núcleos virtuais não time-share da p
AmanNoug
@AmanNoug Você está certo. Meu erro.
Basic