Warum meldet Apple Activity Monitor, dass mein Mac mit einer Dual-Core Intel i5 Ivy Bridge CPU 4 Kerne hat?

Ich habe gerade ein neues Apple MacBook Pro 13", Mitte 2012, das über eine Dual-Core Intel i5 Ivy Bridge CPU verfügt. Wenn ich den Activity Monitor starte und das schwebende CPU-Fenster einschalte, zeigt es ein 4-Balken-Diagramm (zeigt 4 an Kerne).

Auf meinem älteren MacBook Pro mit einem Intel Core 2 Duo Dual-Core-Prozessor zeigte der Aktivitätsmonitor nur ein 2-Balken-Diagramm (zeigt 2 Kerne an).

Warum scheint der Aktivitätsmonitor anzuzeigen, dass mein Mac 4 Kerne hat, obwohl dies eindeutig nicht der Fall ist?

Ich denke, das ist Ihre Antwort: superuser.com/questions/216110/…

Antworten (1)

Dies ist eine Technologie namens Hyperthreading , die diese i5-Chips unterstützen.

Dies bedeutet, dass zwei Threads gleichzeitig auf jedem Kern ausgeführt werden können, was zu zwei zusätzlichen virtuellen Kernen führt. Der Aktivitätsmonitor von OS X zeigt nur virtuelle Kerne, keine physischen Kerne. Ebenso hat ein Quad-Core-Chip acht virtuelle Kerne, und das wird im Aktivitätsmonitor angezeigt.

Etwas zusammenfassen:

  • 1 Prozessor
  • 2 physische Kerne
  • 4 virtuelle Kerne (2 pro physischem Kern)
OK, aber… Wenn zwei Threads gleichzeitig laufen können, kann jeder Thread nur maximal mit halber Normalgeschwindigkeit laufen, oder? Und ich sage maximal , Amdahls Gesetz kommt ins Spiel…
Nicht so ... das Ausführen einer Anweisung umfasst mehrere Schritte (aus dem Speicher lesen, Register setzen, ausführen, Ergebnisse speichern, Kontextwechsel usw.). Hperthreading ermöglicht die gleichzeitige Ausführung von 2 Threads in verschiedenen Phasen des Prozesses, ohne an Geschwindigkeit zu verlieren.
Dieses Verhalten ist auf Intels SMP-Technologie zurückzuführen, die sie als „Hyper-Threading“ bezeichnen, wie @kremalicious betont. Es ist auch wichtig darauf hinzuweisen, dass sich Hyper-Threading nicht auf Pipelining bezieht (wie von @Basic vorgeschlagen), sondern auf Superskalar. Hier ist ein einfaches Beispiel zum Verständnis der superskalaren Architektur: Anstelle einer Recheneinheit haben wir beispielsweise zwei Kopien derselben (eine für jeden virtuellen Kern), sodass die Berechnungen parallel an verschiedenen Datenoperanden durchgeführt werden können. Daher nutzen die virtuellen Kerne das p nicht time-shared
@AmanNoug Du hast recht. Mein Fehler.