Hilber, P. (2010). Hardware transactional memory for a real-time chip multiprocessor [Diploma Thesis, Technische Universität Wien]. reposiTUm. https://resolver.obvsg.at/urn:nbn:at:at-ubtuw:1-42386
Transaktionaler Speicher ist eine Alternative zur konventionellen Synchronisation mit Locks. Programmierung mit Locks ist aufwändig und fehlerhaft; transaktionaler Speicher bietet ein einfaches Programmiermodell und die hohe Nebenläufigkeit, die für zukünftige Multiprozessoren benötigt wird. Obwohl mehrere Threads gleichzeitig auf gemeinsame Daten zugreifen, entsprechen die Ergebnisse einer sequentiellen Ausführung von Codeabschnitten (Transaktionen).<br />Real-Time Transactional Memory (RTTM) ist der erste Entwurf eines echtzeitfähigen transaktionalen Speichers für Chip-Multiprozessoren. Die Entwurfsziele sind ein einfaches Programmiermodell und analysierbares Zeitverhalten. Statische Analyse der potentiellen Konflikte von Transaktionen verringert die Worst-Case Execution Time Bounds. In dieser Diplomarbeit wurde RTTM auf einem FPGA implementiert und die Implementierung evaluiert.<br />Um echtzeitfähig und performant zu sein, ist RTTM hardware-basiert. Ein jedem Prozessor zugeordneter Cache verfolgt die Speicherzugriffe in einer Transaktion. Die Implementierungsplattform ist der echtzeitfähige Chip-Multiprozessor JOP, der Java Bytecode direkt ausführt. Die Programmierschnittstelle ist die @atomic Method Annotation.<br />Die FPGA-basierte Implementierung ermöglicht Transaktionen zur Synchronisation von eingebetteten Echtzeitanwendungen. Auf einem Cyclone II FPGA können bis zu 12 Prozessorkerne laufen. Die RTTM-Hardware ist wegen des (vollassoziativen) Caches aufwändig, dominiert aber nicht den Ressourcenverbrauch. Die Verwandtschaft von JOP mit der Java Virtual Machine ermöglicht Ressourcen sparende Optimierung. Ein Teil von RTTM wurde in Software implementiert, um die Integration der CPU zu vereinfachen und den Ressourcenverbrauch zu vermindern. Als Vorbereitung auf eine toolbasierte Worst-Case-Execution-Time-Analyse wurde die maximale Ausführungszeit der einzelnen RTTM-Operationen analysiert.<br />
de
Transactional memory is an alternative to conventional lock-based synchronization. Locks are difficult to use and not composable; transactional memory offers a simple programming model and the high concurrency desired for future multiprocessors. While actually multiple threads concurrently access shared data, the results look as if code sections (transactions) had been executed sequentially. Conflicts among concurrent transactions are automatically resolved. To our knowledge, there is currently no transactional memory system suitable for hard real-time systems on multiprocessors. Real-time transactional memory (RTTM) is a proposal of a time-predictable transactional memory for chip multiprocessors. The main goals of RTTM are a simple programming model and analyzable timing properties. Static analysis detects non-conflicting transactions, which lowers the worst-case execution time bounds. In this master's thesis, RTTM was implemented on an FPGA and the viability of the implementation was evaluated.<br />For time-predictable execution, RTTM is hardware-based. Each core gets a small, fully associative cache which tracks the memory accesses in a transaction. RTTM was implemented on JOP, a time-predictable chip multiprocessor directly executing Java bytecode. The basic programming interface is the @atomic method annotation. Using Java facilitates link-time transformations and the abort of conflicting transactions. The FPGA-based implementation supports small transactions suitable for synchronization in embedded real-time applications. Up to 12 cores fit on a low-cost Cyclone II FPGA running at 90 MHz with a device utilization of more than 90%. The RTTM hardware is costly due to the fully associative cache, but does not dominate the hardware resource consumption. The close relationship of the processor to the Java Virtual Machine enables some resource-saving optimizations. A part of RTTM was implemented in software in order to make the integration of the CPU nearly transparent and to lower the hardware costs. As a preparation for tool-based worst-case execution time analysis, the execution time of individual RTTM operations was bounded.