Transactional Memory

aus Wikipedia, der freien Enzyklopädie
Wechseln zu: Navigation, Suche

Mit Transactional Memory bezeichnet man ein neues Hauptspeicherkonzept für parallele Berechnungseinheiten, welche auf gemeinsame Speicherbereiche zugreifen, wie z. B. Threads oder Mehrprozessorsysteme. Ziel ist es, die Schwierigkeiten der Synchronisierung und Koordination, die bei parallelen Berechnungen entstehen, vom Programmierer in den Compiler und Hardware zu verlagern. Bisher befindet sich Transactional Memory noch im Forschungsstadium. Mit seiner Serienreife wird erst in einigen Jahren gerechnet. Transactional Memory kann entweder komplett in Software (STM), als Hardware (HTM) oder mit Hardware-Unterstützung (Hybrid-HTM) implementiert werden. Bestehende Systeme mit Hardware Transactional Memory gibt es zurzeit nur als Forschungsprototypen, zum Beispiel das ATLAS-System der Universität Stanford.[1]

Inhaltsverzeichnis

[Bearbeiten] Motivation

Moderne Desktop-Computer und Notebooks haben einen Hauptprozessor mit mehreren Prozessorkernen, doch nur wenige Programme sind in der Lage diese auch auszunutzen. Bei bisherigen Speicherkonzepten hatte ein Prozessor oder ein Programm seine Speicherbereiche stets exklusiv für sich beansprucht. Andere, parallel laufende Software konnten darauf nicht zugreifen. Darüber hinaus bieten gemeinsame Speicherbereiche Möglichkeiten der parallelen Programmierung, was jedoch oft zu Deadlocks oder Livelocks führt und schlecht skaliert. Transactional Memory soll diese Probleme reduzieren und die Parallelisierung vereinfachen.

Die Idee des Transactional Memory stammt aus der Architektur von Datenbanksystemen. Eine Transaktion bündelt Befehle, die auf gemeinsame Ressourcen zugreift. 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 gemachten Änderungen zurück. Welche Transaktion abgebrochen wird, entscheidet ein intelligenter Verwaltungsmechanismus, das Herzstück eines Transactional-Memory-Systems.

[Bearbeiten] Verfügbarkeit

Bisher existieren nur softwarebasierte Verfahren zur Verwaltung parallel genutzten Speichers, sog. Software Transactional Memory. Diese sind jedoch naturgemäß langsamer als hardwarebasierte Konzepte und zeigen keine gute Skalierbarkeit. Der Overhead, der bei den Programmen, die STM nutzen, entsteht ist im Moment noch zu groß um den Systemen mit traditionellen Locks Konkurrenz zu bieten.

Der Computerchiphersteller Intel demonstrierte den Geschwindigkeitsvorteil von Transactional Memory erstmals auf einer Entwicklerkonferenz Anfang 2006, allerdings nur anhand einer Software-Simulation. Bis zur Verfügbarkeit von handelsüblichen Speicherbausteinen und Geräten werden noch mehrere Jahre vergehen.

Auf der ISSCC 2008 stellte Sun Microsystems mit dem ROCK-Prozessor[2] Details eines 16-kernigen Sparc-Prozessors mit Hardware-Transactional-Memory vor. Dessen Entwicklung wurde jedoch mit der Übernahme von Sun durch Oracle im Jahr 2010 eingestellt[3][4].

[Bearbeiten] Forschungsmodelle

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

[Bearbeiten] Literatur

  • 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 (pdf).
  • Larus, J.R. and Rajwar, R. Transactional Memory, Morgan & Claypool, 2006.

[Bearbeiten] Einzelnachweise

  1. TCC Prototypes
  2. vgl. Artikel in der englischsprachigen Wikipedia
  3. http://www.opensparc.net/pubs/preszo/08/RockISSCC08.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. http://www.cs.wisc.edu/trans-memory/
Meine Werkzeuge
Namensräume
Varianten
Aktionen
Navigation
Mitmachen
Drucken/exportieren
Werkzeuge
In anderen Sprachen