Zum Hauptinhalt Zur Navigation

Transactional Memory: Intels Haswell kommt 2013 mit neuer Speicherverwaltung

Mit seiner übernächsten CPU-Architektur, Codename Haswell, führt Intel die neue DRAM-Technik "Transactional Memory" ein. Vor allem Multithreading-Anwendungen sollen davon profitieren, dass sich Speicherzugriffe weniger gegenseitig behindern.
/ Nico Ernst
3 Kommentare News folgen (öffnet im neuen Fenster)
Intels Ankündigung von Haswell auf dem IDF 2011 (Bild: Nico Ernst/Golem.de)
Intels Ankündigung von Haswell auf dem IDF 2011 Bild: Nico Ernst/Golem.de

Mit Transactional Memory soll die Speicherarchitektur von PCs, die sich seit Jahrzehnten kaum weiterentwickelt hat, endlich zu Mehrkernprozessoren und Betriebssystemen und Anwendungen mit vielen Threads aufschließen. Das gab Intel nun in einem Blogeintrag(öffnet im neuen Fenster) bekannt. Der neue Speichertyp soll mit der Architektur Haswell eingeführt werden, sie folgt 2013 der für 2012 vorgesehenen Architektur Ivy Bridge nach.

Haswell ist damit in Intels Tick-Tock-Schema(öffnet im neuen Fenster) ein Tock, also eine neue CPU-Architektur. Der nun bevorstehende Ivy Bridge ist ein Tick, bei dem neben kleineren Änderungen vor allem die Strukturbreite verkleinert wird. Mit den Tocks wird diese Fertigungstechnik beibehalten, es werden aber neue Funktionen hinzugefügt. Als bisher wichtigste Neuerung steht nun Transactional Memory an.

Dabei soll der Speichercontroller, der bei Intel schon seit dem ersten Core i7 in der CPU sitzt, die Speicherzugriffe vor allem beim Schreiben geschickter verwalten, als das bei x86-Prozessoren bisher der Fall war. Klassischerweise können, wie bei einer relationalen Datenbank, Programme oder Threads bestimmte Speicherbereiche für sich beanspruchen und per "Lock" für alle anderen Zugriffe sperren.

Bei vielen Kernen und Threads ist das hinderlich, weil Threads oft auf die Rechenergebnisse anderer Operationen angewiesen sind und die gesperrten Speicherbereiche nicht einmal einsehen können. Als eine Stufe von Transactional Memory sollen aber nun Threads auch unmittelbar in den Speicher schreiben können. Danach wird überprüft, ob sich während dieser – aus Sicht der CPU sehr lange dauernden – Operation in diesem Speicherbereich etwas geändert hat.

Drei Stufen mit neuen Befehlen

Ist das der Fall, und die geschriebenen Daten wären damit ungültig, werden die gespeicherten Informationen verworfen. Der Thread kann dann auf eine andere Strategie ausweichen und beispielsweise doch Speicherbereiche fest allozieren. Alle Operationen werden vom Speichercontroller überwacht, der stets weiß, ob ein Schreibergebnis gültig ist oder nicht.

Der wesentliche Unterschied: Locks werden erst dann eingesetzt, wenn sie unbedingt nötig sind. Für andere Kerne oder Threads gibt es keine Abhängigkeiten mehr, alle Speicheroperationen machen den Eindruck, als seien sie gleichzeitig erfolgt – wenn sie denn gültig sind. Sie wurden, daher der Name, in einer Transaktion erledigt. Das ähnelt etwas der spekulativen Ausführung von Befehlen in den Rechenwerken einer CPU, wie sie schon lange üblich sind.

Dafür gibt es mehrere Erweiterungen des Befehlssatzes, Abwärtskompatibilität zu den Locks bieten die "Hardware Lock Elision" (HLE). Einen Schritt weiter geht die "Restricted Transactional Memory" (RTM). Dafür gibt es drei Befehle, bei deren Anwendung Programmierer aber eine Alternative vorsehen müssen, wenn ein Prozessor Transactional Memory nicht unterstützt. Ob das der Fall ist, wird vermutlich über neue Bits des Befehls CPUID auslesbar sein. Mit den "Transactional Synchronization Extensions (TSX)" gibt es schließlich die volle Unterstützung für die neuen Speicherzugriffe. Intel hat das auch anhand eines Programmierbeispiels(öffnet im neuen Fenster) für eine Hash-Tabelle schon vorgeführt.

Bereits im Jahr 2006 zeigte Intel Transactional Memory auf dem IDF und versprach dabei eine bis zu dreifache Leistungssteigerung für Programme. Diese Beispiele waren aber noch mit einer Softwareemulation vorgeführt worden. Bei anderen Architekturen, wie IBMs Power, gibt es Transactional Memory bereits. Ob Intel die Technik für alle Haswell-CPUs oder nur die für Server vorgesehenen Xeons schon zum Marktstart anbietet, hat der Chiphersteller noch nicht verraten. Einfach wäre das nicht, weil auch die Thread- und Speicherverwaltung des Betriebssystems darauf Rücksicht nehmen muss.


Relevante Themen