Home Computer x86 Prozessoren Site Map counter

Die Nehalem Mikroarchitektur

In meiner Reihe über die Entwicklung der x86 Prozessoren geht es in diesem Aufsatz um die Nehalem Mikroarchitektur. Sie löste die Core Mikroarchitektur ab und isst die erste, die nach Intels Tick-Tock Strategie in den Markt gebracht wurde. Sie basiert auf der Einführung einer neuen Mikroarchitektur  "Tock" und einem Schrumpfen der Strukturen ("tick" - leider in der Reihenfolge der Sprechweise vertauscht) etwa 1 bis eineinhalb Jahre später. Danach folgt wieder eine neue Microarchitektur ("tick") auf dieser Fertigungstechnologie.. Mit Nehalem wurde eine neue Mikroarchitektur eingeführt, im 45 nm Prozess, sie wurde dann von Westmere abgelöst - die Nehalem Mikroarchitektur mit kleinen Verbesserungen aber mit kleineren Strukturen oder kleineren Die-Größen für die Chips in 32 nm Technologie. Danach folgt eine neue Mikroarchitektur - Ivy Bridge.

Mit diesem System hat Intel erfolgreich AMD noch weiter abgehängt als es schon der Fall war. Die Innovationszyklen sprich die Abstände der Einführung einer neuen Mikroarchitektur wurde bei Intel um 1 Jahr von 3-4 Jahre auf 2-3 Jahre gedrückt. Vorher führte man weitgehend beides gemeinsam ein, was immer wieder Probleme bei den ersten Serienexemplaren führte bis man den Prozess beherrschte. Diese Strategie hat sich ausgezahlt. 2013 gab Intel an, das die Tick-Tock Strategie den Vorsprung in den Fertigungsmethoden den Vorsprung von 2,5 auf 3,5 Jahre gegenüber den anderen Halbleiterherstellern gesteigert habe.

Nehalem ist der Name eines Indianerstamms (wie auch Tillamok, das schon mal als Name für eine Mikroarchitektur verwendet wurde), aber auch der einer Stadt in Oregon. Es ist das erste Mal, dass der interne Name einer Mikroarchitektur auch der offizielle ist. Schon lange hatten die neuen Architekturen interne Codenamen (etwa ab 1990) aber sie bekamen dann für die Öffentlichkeit dann einen technischen Namen wie "Netburst" oder "Core Microarchitektur".

Nehalem setzte den mit der letzten Architektur begonnenen Weg der Reduktion des Stromverbrauches weiter fort und trug den Erfahrungen Rechnung die man mit den Mehrkernprozessoren gewonnen hatte. Als diese eingeführt wurden, kündete Intel an, mit steigenden Integration würde mit jeder Generation sich die Kernzahl verdoppeln. Auf zwei Kerne im 65 nm Prozess folgten vier im 45 nm Prozess. Bei Nehalem müsste man dann beim "Tick" (Westmere) acht erwarten und heute (2014) mit 14 nm Strukturen müssten es 32 sein.

Doch es zeigte sich, dass der Nutzen von mehr Kernen bei vielen PC-Benutzern nicht gegeben war. Groß war der Sprung von einem auf zwei Kerne - nun war immer ein Kern frei und Windows konnte nicht durch ein Programm blockiert werden, das den zweiten ganz ausfüllte (besonders beliebt sind dafür Virenscanner). Weitere Kerne brachten dem "normalen" PC Nutzer nur wenig mehr Geschwindigkeit. Das lag daran dass er meistens Software hat die wenig paralelliserbar ist also viele gleichzeitig laufende Teile enthält, sondern meist kurzzeitige Spitzenleistung braucht wie z.B. der Browser wenn eine neue Seite geladen wird. Viele PC-Besitzer profitieren daher mehr von einem hohen Takt als vielen Kernen. Doch genau die Fixierung auf den hohen Takt hatte Intel bei Netburst versucht und war damit gescheitert, da bei jedem Umschalten ein Transistor Strom verbraucht. Je häufiger er dies tut desto höher ist die Verlustleistung die als Wärme abgegeben wird. Bei 100 Watt sind dann meistens Kühlkörper mit Lüfter an der Grenze des Machbaren, sonst werden sie zu voluminös und Schwer und die Kräfte die auf das Motherboard wirken zu hoch.

Daher versuchte man bei Nehalem weiter Strom einzusparen und zugleich die Single-Thread Performance zu erhöhen. Die Nehalem Mikroarchitektur war wie schon die Core 2 Mikroarchitektur und die im Pentium II/III eingesetzte P6-Plus Architektur ein Abkömmling der im Pentium Pro eingeführten P6 Architektur. Sie wurde in den Grundzügen nicht geändert, aber evolutionär verbessert indem es mehr und größere Caches gab, intelligentere Sub-Einheiten oder mehr Funktionseinheiten.

Technologie

Core MikroarchitekturDie Nehalem Architektur war als gemeinsamer Kern für Server, Desktop und Mobilprozessoren geplant. Diese Linien unterschieden sich in der stärkeren Ausprägung einiger Features wie Performance oder Stromsparmechanismen. Geplant waren von vorneherein 2, 4 und 8 Kerne pro CPU. Auch darin unterschieden sich die einzelnen Linien. Die eigentliche interne Mikroarchitektur war nicht geändert worden. Das Bild links zeigt die Core 2 Mikroarchitektur, die einzigen Änderungen sind die eingezeichneten Zahlen die für einen höheren Durchsatz stehen.

Wie in den letzten Generationen wurde SSE weiter erweitert. SSE 4.2 unterschied sich von SSE 4.1 nur durch sieben neue Befehle, zum einen zur CRC Berechnung (allerdings nach einem Verfahren das nicht auf dem bei Ethernet und anderen Protokollen verwendeten basiert) und durch schnelle Stringfunktionen, vor allem zur suche. Da SSE aber mit 128 Bit breiten Registern arbeitet sind diese auf maximal 16 Zeichen lange Strings beschränkt.

Der Cache wurde neu organisiert. Man übernahm die schon vorher von AMD eingeführte Organisation in drei Ebenen:

Die dreistufige Cachestrategie war nicht neu. Serverprozessoren wie von Sub oder IBM hatten sie schon lange vorher, im x86 Bereich hatte AMD mit der K10 Architektur diese Strategie schon vorher eingeführt. Anders als der L2-Cache war der L3-Cache nicht exklusiv, das bedeutete, Daten die es im L1 oder L2 Cache gab, gab es auch dupliziert im L3-Cache. Das hatte Gründe: brauchte ein Kern Daten so fand er sie im L3-Cache wenn sie schon in einem Cache war, er musste nicht die anderen Caches der Kerne durchsuchen. Das beschleunigte den Zugriff. Zugleich gab es eine Instanz für Änderungen. Änderte sich an den Daten etwas (Schreibzugriff), so ging dieser über den L1 und L2-Cache in den gemeinsamen L3 Cache. Dieser konnte nun die anderen Kerne über die Änderung unterrichten und diese lasen die entsprechende Cacheline neu ein. Die Latenz des L1-Cache stieg von 3 auf 4 Takte an, das war eine Folge weiterer Stromsparmechanismen. Dafür war der L2-Cache schneller mit 11 Takten Latenz (18 beim Merom). Der große L3-Cache wurde erkauft mit einer Latenz von 39 bis 52 Takten (verschiedene Quellen) - immerhin DDR3 Speicher mit 1600 MHz hatte eine Latenz von 107 Takten und war noch zweimal langsamer.

NehalemAuch die TLB wurden vergrößert. TLB (Transistent Lookup-Buffer)  sind ein Cache für virtuelle Adressen die man bei virtueller Adressierung braucht um schnell die richtige physikalische Adresse zu berechnen. Der Vorgänger hatte 128 TLB für Instruktionen und 256 für Daten. Diese wurden nun ergänzt durch einen TLB der an den L2-Cache angebunden war und 512 Einheiten speicherte. Das hatte AMD schon bei der K8 Generation eingeführt. Von diesen großen TLB profitieren vor allem Systeme mit viel Speicher und hohem Speicherbedarf, also vor allem Server.

Verbessert wurde auch die Zugriffstrategie für den Cache. Der Cache fordert vom Hauptspeicher Daten in größeren Happen an, beim Nehalem in 64 Byte Cachelines. Sind Daten nun nicht so angeordnet dass sie auf vielfachen von 8 Bytes lagen, so war der Abruf langsamer als bei ausgerichteten Daten. Besonders stark wirkte sich dies bei SSE Anweisungen aus, die 16 Bytes pro Befehl verarbeiteten. Man versuchte schon bei der zweiten Generation der Core Microarchitektur eine Optimierung, doch glückte sie nun erst beim Nachfolger. Er war auch beim nicht ausgerichteten Daten gleich schnell wie bei ausgerichteten Daten.

Um die Befehlsausführung zu beschleunigen wurde die Unterstützung für Verzweigungen, vor allem kleine Schleifen verbessert. Das betraf zum einen die in der Vorgängergeneration eingeführte MacroFusion, die häufige Befehle zu einem verschmolz der schneller ausgeführt wurde. Hinzukamen nun weitere Makrofusion-Kombinationen vor allem welche die Sprünge beinhalteten. Makrofusion arbeitete nun auch bei 64 Bit Code, vorher wurde sie nur bei 32 Bit Code aktiviert.

Daneben war in der Core 2 Architektur hinter der Sprungvorhersageeinheit und dem Prefetch von Instruktionen ein Loop-Cache vor dem Decoder eingebaut. Er nahm 18 Instruktionen auf. Bei Nehalem wurde er hinter den Decoder verschoben und nahm nun 28 Mikroops auf - sinnvoll, weil die Instruktionen ja immer die gleichen waren und so nicht dauernd neu dekodiert werden mussten. Er ist ein Gegenstück zum Trace Cache des Pentium 4, jedoch deutlich kleiner und er cacht nur kleine Schleifen keine Unterprogrammaufrufe. Weitere Verbesserungen gab es bei der Sprungvorhersage, bei der man ein weiteres Level hinzunahm, das über größere Buffer verfügte um mehr der letzten Sprünge aufzunehmen und daher noch besser den nächsten vorherzusagen. Dieser war langsamer als die erste Instanz, aber immer noch schneller als die Folge einer falschen Vorhersage, wenn das Sprungziel falsch war und damit die gesamte Befehlspipeline erneut eingeladen und dekodiert werden musste. Ebenso wurde die Vorhersage der Rücksprungadresse verbessert. Sie lag bei der vorherigen Generation oft daneben, wenn rekursive Algorithmen ausgeführt wurden.

Die Zahl der Ausführungseinheiten hatte sich nicht geändert, es gab nach wie vor 6 Ports an denen zwei Speichereinheiten (Daten und Adressen), eine Ladeeinheit, 3 Integereinheiten und 3 FPUs lagen. Doch durch Befehlserweiterungen gab es mehr Spezialeinheiten, die an diesen Ports lagen und auch mit Daten versorgt werden mussten. Daher hat man die Buffer für die Reservierungseinheiten erhöht: von 32 auf 36. Bei Load von 32 auf 48 und bei Store von 20 auf 32. Als Folge hatte man auch den Reservierungsbuffer von 96 auf 128 Mikroops erhöht. Drei Lade- und Speichervorgänge und 3 Berechnungsvorgänge konnten pro Takt durchgeführt werden

SMTWiedereingeführt wurde die Hyperthreading Technologie, die es schon beim Pentium 4 gab, bei der letzten Generation wieder entfiel. Hyperthreading meldet an das Betriebssystem doppelt so viele Kerne wie tatsächlich verbaut sind. Dies soll zu einer Geschwindigkeitsseigerung von 30% (wären es echte Kerne und gäbe es keine Abhängigkeiten so würde man 100% Geschwindigkeitsgewinn erreichen). Der Nutzen liegt darin, dass man mehrere Funktionseinheiten auf einem Chip hat, aber meistens Software gar nicht so viele Teile hat die nicht voneinander abhängen und so diese Einheiten alle auslasten. Bei Hyperthreading wird diese Aufgabe an das Betriebssystem übertragen die nun eigene Threads (vom selben oder anderen Programmen) an die Prozessoren verteilt und sie so im Schnitt besser auslastet. Hyperthreading gab es nur in der ICore I7 und Xeon Serie. Die anderen Linien mussten ohne dieses Feature auskommen. Intel nannte dies nun SMT (Simultaneous Multithreading) das ist auch der allgemein übliche Ausdruck. Der Gewinn ist bei mehr Recheneinheiten in der Nehalem-Architektur höher als beim Pentium 4, wo der Gerwin nur bei 10 bis 15% lag, jedoch sehr stark vom Code abhängig:

SMT gewinnEine bedeutsame interne Veränderung war die Einführung der Quickpath-Technologie. Bei der letzten Generation zeigte sich bei den Prozessoren mit vielen Kernen, wie sie in Servern oder oberen Preisbereich bei PCs eingesetzt wurden, dass zunehmend die Verbindung zum Speichersystem zum Nadelöhr wurde. Intel reagierte darauf indem sie den Speicherkontroller in die CPU integrierte und gleichzeitig wurde sie verbessert. Quickpath verband nicht nur die CPUs mit dem Chipsatz (und Speicher), sondern auch die Kerne untereinander. Der integrierte Speicherkontroller unterstützte mehrere DDR-3 Kanäle. Bei den Desktop-Versionen waren zwei freigeschaltet, bei den Serverversionen. Der Durchsatz und die Latenz verbesserten sich deutlich gegenüber der Vorgängergeneration mit externem Speicherkontroller im Chipsatz.

Quickpath bestand aus einer seriellen Punkt-Punkt Verbindung mit 20 Datenleitungen in jeder Richtung. 16 transportierten Daten der Rest Statusinformationen. Quickpath konnte zwei Werte pro Takt transferieren, das waren bei 3,2 GHz Takt 25,6 GByte/s, doppelt so viel wie der Frontsidebus des Vorgängermodells schaffte. Weiterhin erlaubte er, da es er genauso auch Prozessoren untereinander verband, den einfacheren Aufbau von Mehrprozesssystemen, wie sie typischerweise in Servern vorkommen. Die Bandbreite zum Speicher wurde ebenfalls vergrößert. Intern hatte jeder Prozessor 3 Kanäle zu DDR3-Speicher, dessen Unterstützung auch neu eingeführt wurde. Das ergab die vierfache Bandbreite der Vorgängergeneration durch schnelleren Datentransfers und mehr Speicherkanäle. Der Chipsatz konnte diese Zahl allerdings beschneiden und Xeon Prozessoren hatten sogar die doppelte Anzahl an Speicherinterfaces.

SchemaVerbessert wurden viele Kleinigkeiten, so die Zeitdauer um zwei Tags zu synchronisieren oder die Beschleunigung von Virtualisierungsfunktionen.

Schon bei Einführung der Core Mikroarchitektur legte Intel Wert auf weitergehende Stromsparmechanismen. Diese wurden in Nehalem noch verbessert. Ein eigener Microcontroller überwachte die einzelnen Subeinheiten der CPU und konnte diese bei nicht Nutzung abschalten. Neu eingeführt wurde ein weitere Tiefenstromsparmode, C6. Überwacht wurde auch die Gesamtabgabe aller Cores und die Wärmeaufnahme durch die Umgebung, d.h. Effizienz des Kühlsystems. Das machte erst den Turbo-Modus möglich. Solange das Kühlsystem die Wärme abführte, kann auch im Turbo Modus die CPU höher getaktet werden, als normal (sogar alle Kerne). Wenn ein oder mehrere Kerne dann nicht voll ausgelastet sind können die anderen noch höher takten.

Der Die-Shrink, das "Tick", war dann die zweite Generation der Nehalem Architektur, genannt Westmere die im Januar 2010 erschien. Westmere unterschied sich in einigen Punkten von Nehalem:

Die höhere Integrationsdichte erlaubte 6 bzw. 10 CPU Kerne auf einem Chip. Diese Varianten waren aber Multiprozessorsystemen (Westmere-EX) und Zweiprozessorsystemen (Westmere -EP) vorbehalten. Für den Desktop gab es nach wie vor nur zwei CPU (teilweise mit Hyperthreading in der iCore 7 Serie).

Geschichtliche Bedeutung

Die ersten Prozessoren erschienen im November 2008 in dem 45 nm Prozess, der bei der Vorgängerarchitektur Penryn eingeführt wurden. Ihr modulares Design (identischer Kern, Unterschiede im "Uncore" Bereich (Level-3 Cache, Quickpath, Speicherkontroller, Stromversorgung und Regulation und Takterzeugung) erlaubte es ohne größere Änderungen in der Produktion verschiedene CPU für unterschiedliche Aufgaben und Preisziele zu designen. Als Folge gab es sehr viele Prozessoren die die Nehalem Architektur einsetzten. Mit ihnen wurde das bis heute gültige Nummerierungsschema eingeführt:

Nummerierungsschema

Intel unterscheidet vom Namen her fünf Linien

Diese Klasse wird dann von einer vierstelligen Nummer ergänzt, die eine Orientierung erlaubt. Die erste Generation erhält keine Nummer, das war Nehalem/Westmere. (Man lies die führende Null weg). Weiterhin erhielt Westmere keine "1" als führende Ziffer. Bei den folgenden Architekturen wurde die Nummer auch bei Die-Shrinks hochgezählt. Diese Prozessoren haben eine dreistellige Nummer. 2 steht für die Sandy-Bridge Architektur (Tock) 3 für die Ivy Bridge (Tick), 4 für Haswell (Tock) und 5 (Seit Ende 2014 verfügbar) die Haswell-EP Architektur (Tick). Ende 2014 sind daher Prozessoren mit einer 4/5 als erster Ziffer aktuell. Die Prozessoren mit der "3" aber Ende 2014 noch am Markt und werden im ersten Quartal 2014 verschwinden.

Die letzte Ziffernfolge lässt eine Einordnung in der Performance innerhalb dieser Reihe zu. Diese liegen z.B. bei der 4xxxx Serie zwischen 4430 (3 GHz) und 4690 (3,5 GHz Nominaltakt). Angehängte Buchstaben sind dann für Spezialaufgaben gedacht: U für sehr stromsparende niedrig getaktete Exemplare, K für frei wählbaren Taktmultiplikator, T für frei wählbaren Taktmultiplikator ohne Schutz für zu hohes Übertrakten. Das sind nur die wichtigsten, es gibt dann noch weitere Buchstaben als Suffix.

Als Folge hat Intel derzeit über 100 lieferbare Prozessoren der x86 Linie im Programm, während es früher einige wenige waren die sich meist auch nur im Takt unterschieden. Eine ähnliche Vielfalt findet man aber auch bei AMD.

2010 folgte Westmere. Hier wurde die Intel 2500 Grafik integriert, die vorher Bestandteil des Chipsatzes war. Allerdings war dies eine" Multichp on one Die" Lösung: Durch eine gemeinsame Maske wurden zwei Chips auf einem Die belichtet, die miteinander durch einen QPI-Verbindung kommunizierten. Die Grafik belegte rund 177 Millionen Transistoren. Für die Desktoplinie blieb hinsichtlich maximaler Kernzahl alles beim Alten, die Serverlinie (Xeon) lies die Grafik jedoch weg und nutzte den Platz für mehr Kerne. Für die Xeonlinie gab es auch Versionen mit 6 bzw. 10 Kernen.

Da die Geschwindigkeit pro Kern kaum gesteigert werden konnte (zumindest bei Ganzzahloperationen und Anwendungen die nicht SSE einsetzten) konnten in der Xeon Linie die zusätzlichen Kerne den Performanceboost bringen. Die Desktoplinie konnte bei Westmere höher getaktet werden.

Technische Daten  
Erschienen: November 2008 (Nehalem)
7.1.2010 (Westmere)
Transistoren: 460/731 Millionen (Nehalem, Dualcore/Quadcore)
1170 Millionen (Westmere, 6-Core)
Technologie 45 / 32 nm
Taktfrequenzen: 1,85 bis 3,33 GHz (Nehalem)
1,73 bis 4,40 GHz (Westmere)
Recheneinheiten Ganz/Fließkomma 3 ALU / 3 SSE / 2 FPU
Geschwindigkeit Ganzzahlen 6443 Dhrystones bei 3333 MHz (Core I7 950 (Nehalem))
Geschwindigkeit Fließkommazahlen 2913 Whetstones bei 3333 MHz (Core I7 950 (Nehalem))
Geschwindigkeit: 90.000 MIPS (3066 MHz, 8 Threads, 4 Cores)
Spannung: 0,8 bis 1,375 V (Nehalem)
Gehäuse: LGA 1156,1366 und 1567
Speicher: 64 GByte physikalisch, 64 TByte virtuell
Datenbus: 64 Bit breit
Vorgänger: Core Mikroarchitektur
Nachfolger: Sandy Bridge Microarchitektur

Quellen:

First Look at Nehalem Microarchitecture

Inside Intel Nehalem Microarchitecture

Intel Next Generation  Nehalem Microarchitecture

Intel Turbo Boost White Paper

Intel: Xeon 3500 and 5500 Whitepaper

Artikel erstellt am 5.12.2014

Zum Thema Computer ist auch von mir ein Buch erschienen. "Computergeschichte(n)" beinhaltet, das was der Titel aussagt: einzelne Episoden aus der Frühzeit des PC. Es sind Episoden aus den Lebensläufen von Ed Roberts, Bill Gates, Steve Jobs, Stephen Wozniak, Gary Kildall, Adam Osborne, Jack Tramiel und Chuck Peddle und wie sie den PC schufen.

Das Buch wird abgerundet durch eine kurze Erklärung der Computertechnik vor dem PC, sowie einer Zusammenfassung was danach geschah, als die Claims abgesteckt waren. Ich habe versucht ein Buch zu schreiben, dass sie dahingehend von anderen Büchern abhebt, dass es nicht nur Geschichte erzählt sondern auch erklärt warum bestimmte Produkte erfolgreich waren, also auf die Technik eingeht.

Die 2014 erschienene zweite Auflage wurde aktualisiert und leicht erweitert. Die umfangreichste Änderung ist ein 60 Seiten starkes Kapitel über Seymour Cray und die von ihm entworfenen Supercomputer. Bedingt durch Preissenkungen bei Neuauflagen ist es mit 19,90 Euro trotz gestiegenem Umfang um 5 Euro billiger als die erste Auflage. Es ist auch als e-Book für 10,99 Euro erschienen.

Mehr über das Buch auf dieser eigenen Seite.

Hier geht's zur Gesamtübersicht meiner Bücher mit direkten Links zum BOD-Buchshop. Die Bücher sind aber auch direkt im Buchhandel bestellbar (da ich über sehr spezielle Themen schreibe, wird man sie wohl kaum in der Auslage finden) und sie sind natürlich in den gängigen Online-Plattformen wie Amazon, Libri, Buecher.de erhältlich.


© des Textes: Bernd Leitenberger. Jede Veröffentlichung dieses Textes im Ganzen oder in Auszügen darf nur mit Zustimmung des Urhebers erfolgen.
Sitemap Kontakt Neues Hier werben Bücher vom Autor Buchempfehlungen Top 99