Intel Core i7 "Nehalem" im Test - des Kaisers neue Kleider

Prozessoren | HT4U.net | Seite 8

Core i7-Technik: Hyper-Threading, ein alter Bekannter



Um die Effizienz der Recheneinheiten weiter zu steigern, kehrt ein alter Bekannter aus Pentium 4-Zeiten zurück: Hyper Threading Technology (HTT). Die außerhalb der Intel-Marketingwelt Simulaneous Multithreading (SMT) genannte Technologie sorgt für eine bessere Auslastung der Rechenwerke, indem mehrere Rechenaufgaben zeitgleich durch einen Prozessorkern laufen, anstatt nacheinander. Die Intel-Implementierung sieht zweifach SMT vor, womit dem Betriebssystem der Quad-Core als acht virtuelle Prozessoren erscheinen.

Bild: Intel Core i7

Die Implementierung von SMT für die insgesamt sechs Execution Units des Nehalem-Cores (drei Speicherzugriffe, drei Berechnungen gleichzeitig) verlangt vom Design keinen allzu großen Aufwand. Lediglich eine Handvoll Register müssen für die zusätzlichen Threads doppelt angelegt sein und kosten zusätzliche Fläche. Andere Ressourcen wie die auf den Vorseiten angesprochenen TLBs werden einfach geteilt genutzt und punktuell erweitert. Zu nennen sind hier der Reorder Buffer, der sich um die Reihenfolge der ausgeführten Instruktionen kümmert. Er wuchs von 96 auf 128 Einträge an, allerdings ist er statisch in zwei 64er-Blöcke geteilt, wenn HTT aktiv ist. Ebenso statisch ist die Aufteilung der Load und Store Buffer (48 statt bisher 32 Einträge und 32 statt bislang 20 Einträge).

Bild: Intel Core i7

Die Reservation Station, die die Rechenaufgaben auf die einzelnen Execution Units verteilt, ist nun 36 statt 32 Einträge groß und kann dynamisch zwischen den beiden Threads aufgeteilt werden. Speziell in out-of-order designs wie die aktuellen x86-Prozessoren, bei denen Rechenaufgaben für bessere Auslastung umsortiert werden können, ist die Vergrößerung der Buffer notwendig, um den gestiegenen Durchsatz zu verkraften.

Bild: Intel Core i7

Während HTT die Auslastung bei hochparallelisierten Aufgaben oder unabhängigen Berechnungen verbessern kann, können sich zwei Threads, die die gleichen Execution Units benötigen, durchaus in die Quere kommen, was zu Performanceeinbußen führen kann.

Wie sich dies in der Desktop-Praxis auswirkt, wollen wir dann sogleich im kommenden Kapitel näher betrachten.

 

Inhalt dieses Testberichtes