Почему Apple Activity Monitor сообщает, что мой Mac с двухъядерным процессором Intel i5 Ivy Bridge имеет 4 ядра?

Я только что получил новый Apple MacBook Pro 13 дюймов, выпущенный в середине 2012 года, с двухъядерным процессором Intel i5 Ivy Bridge. ядра).

На моем старом MacBook Pro с двухъядерным процессором Intel Core 2 Duo Activity Monitor показывал только 2-гистограмму (указывающую на 2 ядра).

Почему Activity Monitor показывает, что у моего Mac 4 ядра, хотя на самом деле это не так?

Я думаю, это ваш ответ: superuser.com/questions/216110/…

Ответы (1)

Это технология под названием Hyperthreading , которую поддерживают чипы i5.

Это означает, что два потока могут работать одновременно на каждом ядре, что приводит к двум дополнительным виртуальным ядрам. Монитор активности OS X показывает только виртуальные ядра, а не физические ядра. Точно так же четырехъядерный чип имеет восемь виртуальных ядер, и это то, что представлено в Activity Monitor.

Подвести итог:

  • 1 процессор
  • 2 физических ядра
  • 4 виртуальных ядра (по 2 на физическое ядро)
Хорошо, но... Если два потока могут работать одновременно, каждый поток может работать только с максимальной скоростью, равной половине нормальной, не так ли? И я говорю максимум , в дело вступает закон Амдала…
Не так... выполнение инструкции включает в себя несколько шагов (чтение из памяти, установка регистров, выполнение, сохранение результатов, переключение контекста и т. д.). hperthreading позволяет одновременно выполнять 2 потока на разных этапах процесса без потери скорости.
Такое поведение связано с технологией Intel SMP, которую они называют «Hyper-threading», как указывает @kremalicious. Также важно отметить, что Hyper-threading относится не к конвейерной обработке (как предлагает @Basic), а к суперскалярной. Вот простой пример для понимания суперскалярной архитектуры: вместо одного арифметического блока у нас есть, скажем, две копии одного и того же (по одной на каждое виртуальное ядро), так что вычисления можно выполнять параллельно с разными операндами данных. Следовательно, виртуальные ядра не разделяют время p
@AmanNoug Ты совершенно прав. Моя ошибка.