Transaktionaler Speicher

(Weitergeleitet von Transactional Memory)

Transaktionaler Speicher ist ein Konzept in der Informatik für parallele Berechnungseinheiten, die auf gemeinsame Arbeitsspeicherbereiche zugreifen, wie z. B. Threads oder Mehrprozessorsysteme. Ziel ist es, damit die Ausführungsgeschwindigkeit gegenüber bisherigen Synchronisationsverfahren zu steigern, sowie die Schwierigkeiten der Synchronisierung zu lösen, die bei paralleler Software entstehen, insbesondere, wenn diese aus mehreren voneinander unabhängig entwickelten Komponenten besteht. Transaktionaler Speicher kann entweder komplett als Software (STM), als Hardware (HTM) oder mit Hardware-Unterstützung (Hybrid-HTM) implementiert werden.

Bestehende Systeme mit durch Hardware unterstütztem transaktionalem Speicher gab es anfangs nur als Forschungsprototypen, zum Beispiel das ATLAS-System der Universität Stanford.[1] Inzwischen sind die Systeme aber zur Serienreife gelangt. Der erste Prozessor mit transaktionalem Speicher war IBMs BlueGene/Q. Intel hat im Februar 2012 angekündigt, seine nächste Prozessorgeneration namens Haswell mit transaktionalem Speicher auszustatten.[2]

Das Konzept stammt von Maurice Herlihy und Eliot Moss.

Konzept Bearbeiten

Bei der parallelen Programmierung können sich schnell Fehler einschleichen, welche zu Blockierungen innerhalb des Systems (so genannte Deadlocks) führen können. Transaktionaler Speicher soll dieses Problem grundsätzlich lösen und dadurch die Parallelisierung von Software erheblich vereinfachen.

Die Idee des transaktionalen Speichers stammt aus der Architektur von Datenbanksystemen. Eine Transaktion bündelt Befehle, die auf gemeinsame Ressourcen zugreifen. Falls zwei Transaktionen auf die gleiche Ressource zugreifen möchten, wird eine der beiden Transaktionen abgebrochen. Diese gibt die besetzten Ressourcen frei und setzt alle getätigten Änderungen zurück (Rollback). Welche Transaktion abgebrochen wird, entscheidet ein intelligenter Verwaltungsmechanismus, das Herzstück eines transaktionalen Speichers.

Verfügbarkeit Bearbeiten

Bisher gab es nur softwarebasierte Verfahren zur Realisierung transaktionalen Speichers (software transactional memory, STM), die jedoch langsamer als hardwarebasierte Verfahren sind. Der Mehraufwand, der bei den Programmen entsteht, die STM nutzen, ist zu groß, um mit Systemen mit herkömmlichen Synchronisationsmechanismen konkurrieren zu können.

Der Computerchiphersteller Intel demonstrierte den Geschwindigkeitsvorteil von transaktionalem Speicher erstmals auf einer Entwicklerkonferenz Anfang 2006, allerdings nur anhand einer Software-Simulation. Mit ausgewählten CPUs der aktuellen Haswell-Architektur bietet Intel das Konzept unter dem Namen Transactional Synchronization Extensions als x86-Architektur-Erweiterung an.

Auf der ISSCC 2008 stellte Sun Microsystems mit dem ROCK-Prozessor Details eines 16-kernigen SPARC-Prozessors mit Hardware-unterstütztem transaktionalem Speicher vor. Dessen Entwicklung wurde jedoch mit der Übernahme von Sun durch Oracle im Jahr 2010 eingestellt.[3][4]

Forschungsmodelle Bearbeiten

  • UTM – Unbounded Transactional Memory[5]
  • LTM – Large Transactional Memory
  • VTM – Virtual Transactional Memory
  • LogTM – Log-based Transactional Memory
  • TCC – Transactional Memory Coherence and Consistency

Literatur Bearbeiten

  • Maurice Herlihy, J. Eliot B. Moss: Transactional memory: Architectural support for lock-free data structures. In: Proceedings of the 20th International Symposium on Computer Architecture (ISCA). 1993, S. 289–300 (cs.brown.edu [PDF]).
  • J.R. Larus, R. Rajwar: Transactional Memory. Morgan & Claypool, 2006.
  • Calin Cascaval, Colin Blundell, Maged Michael, Harold W. Cain, Peng Wu, Stefanie Chiras, Siddhartha Chatterjee: Software Transactional Memory: Why Is It Only a Research Toy? In: Queue. Band 5, Nr. 6. ACM, September 2008, ISSN 1542-7730, S. 40:46–40:58, doi:10.1145/1454456.1454466 (acm.org [abgerufen am 2. November 2015]).

Einzelnachweise Bearbeiten

  1. TCC Prototypes. (Memento vom 28. März 2009 im Internet Archive)
  2. Andreas Stiller: Transactional Memory für Intels Haswell-Prozessor. In: heise online. 10. Februar 2012, abgerufen am 5. April 2022.
  3. opensparc.net (PDF)
  4. Special Report: Can that guy in Ironman 2 whip IBM in real life? Reuters, 12. Mai 2010, abgerufen am 21. Mai 2011.
  5. cs.wisc.edu