Intel Core i7 (Nehalem): Architektur von AMD?

Die Rückkehr des Hyper-Threading Das Frontend wurde also nicht grundlegend überarbeitet. Weder hat das Backend. Es hat genau die gleichen Ausführungseinheiten wie die neuesten Core-Prozessoren, aber auch hier haben die Ingenieure daran gearbeitet, sie effizienter zu nutzen. Mit Nehalem macht Hyper-Threading sein großes Comeback. Mi

Die Rückkehr des Hyper-Threading

Das Frontend wurde also nicht grundlegend überarbeitet. Weder hat das Backend. Es hat genau die gleichen Ausführungseinheiten wie die neuesten Core-Prozessoren, aber auch hier haben die Ingenieure daran gearbeitet, sie effizienter zu nutzen.

Mit Nehalem macht Hyper-Threading sein großes Comeback. Mit der Northwood-Version von Intels NetBurst-Architektur eingeführt, ist Hyper-Threading - auch außerhalb der Intel-Welt als Simultaneous Multi-Threading (SMT) bekannt - ein Mittel zur Nutzung der Thread-Parallelität, um den Einsatz der Ausführungseinheiten eines Kerns zu verbessern scheinen zwei Kerne auf Anwendungsebene zu sein.

Um parallele Threads zu verwenden, müssen bestimmte Ressourcen wie Register dupliziert werden. Andere Ressourcen sind d durch die zwei Threads, und das schließt die gesamte Out-of-Order-Ausführungslogik (den Befehlsumordnungspuffer, die Ausführungseinheiten und den Cache-Speicher) ein. Eine einfache Beobachtung führte zur Einführung von SMT: die "breiteren" (das heißt mehr Ausführungseinheiten) und "tieferen" (dh mehr Pipeline-Stufen) Prozessoren werden, desto schwieriger ist es, genug Parallelität zu extrahieren, um alle Ausführungseinheiten in jedem Zyklus zu verwenden . Wo der Pentium 4 sehr tief war, mit einer Pipeline mit mehr als 20 Stufen, ist Nehalem sehr breit. Es verfügt über sechs Ausführungseinheiten, die drei Speicheroperationen und drei Rechenoperationen ausführen können. Wenn die Ausführungsmaschine keine ausreichende Parallelität von Befehlen finden kann, um alle Vorteile auszunutzen, treten in der Pipeline "Bubbles" - veraltete Zyklen - auf.

Um dieser Situation abzuhelfen, sucht SMT in zwei Threads nach Instruktions-Parallelität statt nach einer einzigen mit dem Ziel, so wenig Einheiten wie möglich zu verwenden. Dieser Ansatz kann äußerst effektiv sein, wenn die beiden Threads Aufgaben ausführen, die stark voneinander getrennt sind. Auf der anderen Seite erhöhen beispielsweise zwei Threads, die eine intensive Berechnung beinhalten, den Druck auf die gleichen Berechnungseinheiten, wodurch sie für den Zugriff auf den Cache miteinander in Konkurrenz treten. Es versteht sich von selbst, dass SMT in dieser Art von Situation nicht von Interesse ist und sogar die Leistung negativ beeinflussen kann.

Top