Sun: Transaktionsschutz für Arbeitsspeicher

Der Rock-Prozessor soll die Konsistenz der Daten im Arbeitsspeicher mit Mechanismen schützen, die von relationalen Datenbanken stammen.

In Pocket speichern vorlesen Druckansicht 49 Kommentare lesen
Lesezeit: 2 Min.
Von
  • Benjamin Benz

Sun plant, dem für 2008 erwarteten Rock-Prozessor Speicherverwaltungsmechanismen zu spendieren, die von relationalen Datenbanken stammen. Rock wird 16 Rechenkerne besitzen, von denen jeder gleichzeitig zwei Threads abarbeiten kann. Damit sich die Threads beim Zugriff auf gemeinsam genutzte (shared) Speicherbereiche nicht ins Gehege kommen, sind Schutzmechanismen erforderlich. Bisher wählen hier viele Programmierer einfache "Lock"-Mechanismen, die große Speicherbereiche so lange blockieren, bis der jeweilige Thread mit dem Datenaustausch fertig ist. Der einfachen Implementierung steht dabei oft eine schlechte Performance gegenüber, weil andere Threads warten müssen, obwohl sie eigentlich auf ganz andere Daten im gleichen Lock-Bereich zugreifen wollen. Feinkörnigere Mechanismen sind aber aufwendig zu implementieren.

Transactional Memory soll dieses Problem mit einer einheitlichen Infrastruktur beheben. Ähnlich wie bei relationalen Datenbanken werden (beliebig viele) Anfragen in eine Transaktion gekapselt, die dann entweder ganz oder gar nicht ausgeführt wird. Dabei blockieren die Transaktionen nur die wirklich benutzten Speicherbereiche. Auch wenn der Aufwand für den einzelnen Speicherzugriff dabei leicht steigt, soll sich das System in Rechnern mit vielen Prozessorkernen dennoch lohnen, da sich die einzelnen Kerne viel weniger gegenseitig behindern als beim klassischen Zugriff auf shared memory, wenn sich der Programmierer selbst um die Locks kümmern muss.

Sun will einen Teil der dafür nötigen Logik in Hardware, sprich dem Rock-Prozessor selbst, realisieren; andere Teile will man dem Betriebssystem Solaris überlassen. Sun nennt diesen Ansatz Hybrid Transactional Memory (HyTM). Sowohl Java als auch Solaris können angeblich bereits jetzt mit Transactional Memory umgehen. Dennoch sucht Sun auch die Unterstützung der Programmierer für Transactional Memory. (bbe)