Dlaczego Apple Activity Monitor zgłasza, że ​​mój Mac z dwurdzeniowym procesorem Intel i5 Ivy Bridge ma 4 rdzenie?

11

Właśnie dostałem nowego Apple MacBooka Pro 13 ”, w połowie 2012 roku, który ma dwurdzeniowy procesor Intel i5 Ivy Bridge. Po uruchomieniu Activity Monitora i włączeniu Floating CPU Window, wyświetlany jest 4-słupkowy wykres (wskazujący 4 rdzenie).

W moim starszym MacBooku Pro z dwurdzeniowym procesorem Intel Core 2 Duo Activity Monitor wyświetlał tylko 2-słupkowy wykres (wskazujący 2 rdzenie).

Dlaczego Monitor aktywności wydaje się wskazywać, że mój Mac ma 4 rdzenie, kiedy wyraźnie tego nie robi?

CajunLuke
źródło
4
Myślę, że to twoja odpowiedź: superuser.com/questions/216110/…
Saaru Lindestøkke

Odpowiedzi:

21

Jest to technologia o nazwie Hyper Threading te układy i5 obsługują.

Oznacza to, że dwie nici mogą działać jednocześnie na każdym rdzeniu, co daje dwa dodatkowe wirtualny rdzenie. Monitor aktywności OS X pokazuje tylko rdzenie wirtualne, a nie fizyczny rdzenie. Podobnie, czterordzeniowy układ ma osiem wirtualnych rdzeni i to jest prezentowane w Activity Monitor.

Podsumowując:

  • 1 procesor
  • 2 rdzenie fizyczne
  • 4 rdzenie wirtualne (2 na rdzeń fizyczny)
kremalicious
źródło
OK, ale… Jeśli dwa wątki mogą działać jednocześnie, każdy wątek może działać tylko z maksymalną połową normalnej prędkości, nie? I mówię maksymalny , Amdahl ma prawo…
Nicolas Barbulesco
Nie tak ... wykonanie instrukcji wiąże się z wieloma krokami (odczyt z pamięci, ustawianie rejestrów, wykonywanie, przechowywanie wyników, przełączanie kontekstu itp.). Hperthreading pozwala dwóm wątkom działać jednocześnie na różnych etapach procesu bez utraty prędkości.
Basic
To zachowanie wynika z technologii Intel SMP, którą nazywają „Hyper-threading”, jak wskazuje @kremalicious. Ważne jest również podkreślenie, że hiperwątkowość nie odnosi się do potokowania (jak sugeruje @Basic), ale superskalarna. Oto prosty przykład na zrozumienie architektury superskalarnej: zamiast jednej jednostki arytmetycznej mamy, powiedzmy, dwie kopie tej samej (po jednej dla każdego rdzenia wirtualnego), aby obliczenia mogły być wykonywane równolegle na różnych operandach danych. Dlatego rdzenie wirtualne nie współdzielą czasu p
AmanNoug
@AmanNoug Masz rację. Mój błąd.
Basic