Transactional Synchronization Extensions

Dies ist eine alte Version dieser Seite, zuletzt bearbeitet am 6. Dezember 2016 um 22:27 Uhr durch Aka (Diskussion | Beiträge) (Tippfehler entfernt). Sie kann sich erheblich von der aktuellen Version unterscheiden.

Die Transactional Synchronization Extensions (TSX) sind eine Erweiterung der x86-Architektur um Transaktionalen Speicher, womit die Ausführung von paralleler Software beschleunigt werden kann.

Verbreitung

TSX wurde im Februar 2012 offiziell vorgestellt und im Juni 2013 erstmals in ausgewählten Prozessoren der Haswell-Architektur ausgeliefert. Mit Broadwell und Skylake fand TSX auch Eingang in günstigere Prozessoren. Aufgrund eines Fehlers im Microcode wurde TSX aber bei zahlreichen Modellen der Haswell- und Broadwell-Architektur nachträglich deaktiviert; Die Version aus der Skylake-Architektur wurde hingegen ohne Änderung auch in Kaby Lake weiterverwendet.

Funktion

TSX stellt zwei Schnittstellen zur Verfügung, um Code für parallele Abarbeitung zu erzeugen: Zunächst existiert mit Hardware Lock Elision (HLE) eine Schnittstelle zu Prozessoren, die nicht über TSX verfügen. Mit Restricted Transactional Memory (RTM) wird eine neue Befehlssatzerweiterung eingeführt, um effizienteren Code zu erzeugen.

Im Hauptspeicher werden Regionen definiert, in denen einerseits Berechnungen ausgeführt und Ergebnisse abgespeichert werden, in die andererseits fallweise aber auch Ergebnisse aus anderen Berechnungen geschrieben werden. Wird nun tatsächlich ein Ergebnis einer fremden Berechnung in eine definierte Region abgespeichert, so werden die zuvor daraus durchgeführten Berechnungen erneut ausgeführt und das vorige Ergebnis verworfen. Sämtliche derartige Berechnungen sind daher zunächst spekulativ (Speculative execution) und bringen erst im Zeitverlauf ein validen Ergebnis.

Mittels TSX kann nun Code parallel ausgeführt werden, dabei können die sich ergebenden Abhängigkeiten ermittelt werden und gefundene Abhängigkeiten erneut durchgerechnet werden.

In Benchmark zeigte sich, dass Applikationen mit TSX rund 40% schneller ausgeführt werden können.