Zum Inhalt springen

Transactional Synchronization Extensions

aus Wikipedia, der freien Enzyklopädie
Dies ist eine alte Version dieser Seite, zuletzt bearbeitet am 13. Dezember 2016 um 11:22 Uhr durch 194.96.152.21 (Diskussion). 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 diese 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 valides Ergebnis.

Mittels TSX wird nun Code wirklich parallel ausgeführt, wobei die sich ergebenden Abhängigkeiten ermittelt werden können und gefundene Abhängigkeiten erneut berechnet werden. Bisher musste Software in Prozesse oder Threads aufgeteilt werden, um parallel ausgeführt zu werden.

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

Trivia

Die vergleichbare Erweiterung bei AMD wird Advanced Synchronization Facility genannt.