Efficient placement of software transactional memory operations around procedure calls
AssigneeMicrosoft Corporation
InventorTimothy Lawrence Harris
Life of this patent
Estimating the term…
Loading patent…
AssigneeMicrosoft Corporation
InventorTimothy Lawrence Harris
Estimating the term…
A software transactional memory system is described which utilizes decomposed software transactional memory instructions as well as runtime optimizations to achieve efficient performance. The decomposed instructions allow a compiler with knowledge of the instruction semantics to perform optimizations unavailable on traditional software transactional memory systems. Additionally, high-level software transactional memory optimizations are performed such as code movement around procedure calls, addition of operations to provide strong atomicity, removal of unnecessary read-to-update upgrades, and removal of operations for newly-allocated objects. During execution, multi-use header words for objects are extended to provide for per-object housekeeping, as well as fast snapshots which illustrate changes to objects. Additionally, entries to software transactional memory logs are filtered using an associative table during execution, preventing needless writes to the logs. Finally a garbage collector with knowledge of the software transactional memory system compacts software transactional memory logs during garbage collection.
A method for compiling an efficient program comprising atomic blocks utilizing software transactional memory operations, the method comprising:
A compiler system for removing redundant instructions from a program comprising atomic blocks containing software transactional memory operations, the compiler system comprising a computer executing an optimization module, the optimization module configured to:
One or more computer-readable storage memory or magnetic disks containing instructions which, when executed by a computer, cause the computer to perform a method for optimizing a program comprising atomic blocks with software transactional memory instructions, the method comprising:
Dependencies are inferred from the claim text.