Fall Processor Forum: Details zu AMDs 4-Kern-Prozessor

Cache-Organisation, neue SSE-Befehle und andere Erweiterungen am Rechenwerk: AMD rückt die Informationen zu ihrem Vierkernprozessor nur tröpfchenweise heraus.

In Pocket speichern vorlesen Druckansicht 168 Kommentare lesen
Lesezeit: 4 Min.
Von
  • Benjamin Benz

Den 2 MByte großen L3-Cache teilen sich beim "Barcelona" alle vier Kerne.

Häppchenweise gibt AMD Details zu dem 4-Kern-Opteron mit dem Codenamen "Barcelona" heraus. Auf dem Fall Microprocessor Forum in San Jose zeigte AMD wieder einmal ein paar wenige neue und einige schon bekannte Architekturdetails sowie einen Die-Shot. Der erste echte Quadcore wird ein Opteron-Prozessor für den Sockel F sein. Der neue Prozessor soll als Drop-in-Replacement Doppelkern-Opterons ersetzen können. Es ändert sich also weder am Sockel, den drei HT-Links noch an der Thermal Design Power (TDP) – maximal 120 Watt – etwas. Diese Effizienzsteigerung erreicht AMD durch die Migration auf einen 65-nm-Fertigungsprozess.

Ähnlich wie Intel arbeitet auch AMD an einer neuen SSE-Erweiterung. Intels SSE4 und AMDs SSE128 werden jedoch (vorerst) nicht kompatibel sein. AMD verbreitert die SSE-Einheit von 64 auf 128 Bit und spendiert ihr zusätzlich noch einige neue Befehle (EXTRQ, INSERTQ, MOVNTSD, MOVNTSS). Dazu kommen noch eigene SSE-MOV-Befehle, die in der Store-Pipeline der FPU ausgeführt werden. Es können zweimal 128 Bit pro Zyklus in die SSE-Einheit geladen werden. Auch müssen die Daten für die SSE-ld-Operationen nicht mehr an bestimmten Wortgrenzen im Speicher ausgerichtet sein (SSE unaligned Load-Execution mode). Hinzugekommen sind auch Erweiterungen des Befehlssatzes um Bitmanipulationen (Zählen der führenden Nullen: LZCNT sowie die Anzahl aller Einsen, auch Hamming-Gewicht oder Population Count genannt – POPCNT).

Die Sprungvorhersageeinheit soll einige Verbesserungen erfahren haben. Ladeoperationen können out-of-order umorganisert werden. Der Befehlsladespeicher wächst von 16 auf 32 Byte.

Ein Sideband Stack Optimizer kümmert sich um Modifikationen des Stacks während PUSH- und POP-Befehlen. Das soll die restlichen Rechenwerke entlasten. Deutlich hat AMD die Größe der Translation Lookaside Buffer (TLB) vergrößert. Die einzelnen Seiten können nun bis zu 1 GByte verwalten. Sollten die Eingangsdaten für eine Division dies erlauben, kann der Divider abbrechen, wenn sich am Endergebnis nichts mehr ändert. Das soll die Latenzzeiten bei Divisionen verkürzen.

Die beiden DDR2-Speicher-Controller können nun völlig unabhängig voneinander arbeiten, was bei geschickter Programmierung die Anzahl der Page-Conflicts reduzieren soll. Ein "Write bursting" genanntes Verfahren soll Schreibzugriffe in den Speicher sammeln und auf einmal ausführen. Den umgekehrten Weg geht der DRAM Prefetcher: Wenn die Speicherschnittstelle nichts zu tun hat, versucht er, demnächst benötigte Daten schon einmal in einen Puffer zu laden.

Daten im L3-Cache stehen allen Kernen zur Verfügung. Über den L1- und L2-Cache gebietet jeder Kern exklusiv.

Die Quadcore-Prozessoren, die 2007 auf den Markt kommen sollen, werden drei verschiedene Caches haben. Jeder Kern gebietet dabei über 64 KByte L1- und 512 KByte L2-Cache. Den L3-Cache mit 2 MByte teilen sich alle vier Kerne. Alle drei Caches arbeiten erst einmal nach dem Victim-Cache-Prinzip, bei dem der tiefer liegende Cache die Daten aufnimmt, die aus dem näher am Kern liegenden herausfallen. Allerdings können Cache-Lines, die (wahrscheinlich) von anderen Kernen mitbenutzt werden trotzdem im L3-Cache verbleiben. In die Entscheidung, ob Daten im L3-Cache verbleiben oder nicht, fließen unter anderem die MOESI-Bits aber auch der Inhalt der Cache-Lines ein. So werden Code-Segmente eher mit anderen Kernen geteilt als Datensegmente.

Der Barcelona-Kern kann ganze Speicherbereiche aber auch Cache-Lines einzelnen virtuellen Maschinen zuordnen. Das "Nested Paging" (NP) – Teil der Pacifica-Erweiterung – entlastet den Hypervisor von aufwendigen Umrechnungen und besonders auch von Mechanismen des Zugriffschutzes. Normalerweise enthält jede Page Table ein Register (CR3) das die physische Adresse der Seite speichert. Bei den Nested Page Tables erhält jede VM ein eigenes gCR3-Register. Diese zusätzliche Übersetzungsschicht gaukelt jeder VM einen eigenen physischen Adressraum vor. Bei einem Kontextwechsel muss daher nicht mehr – aus Sicherheitsgründen – der ganze Cache geleert werden, sondern die VM erhält nur Zugriff auf ihre eigenen Cache-Lines.

Auch bei den Stromsparfunktionen hat AMD nachgerüstet. So soll es nun getrennte Powerplanes für die Northbridge und den Kern geben. So kann in einem Mehrwegesystem beispielsweise die Spannung der Kerne gesenkt werden, während der Speichercontroller andere CPUs mit Daten versorgt. Die Taktfrequenz kann für jeden Kern einzeln eingestellt werden.

Zum Fall Microprocessor Forum 2006 siehe auch: (bbe)