STM Primitives Shadow Copy Pointer Stability

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Transactional memory systems incur overhead due to tracking memory accesses, especially when accesses to the same data are spaced out and use different variable names, making it difficult to discern the effects of instructions on the program.

Innovation Solution

Software transactional memory (STM) primitives are introduced to ensure the address of a shadow copy representing a memory location remains constant across operations, allowing for the reuse of the shadow copy and optimizing memory access operations by eliminating redundant or combining STM primitives.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If transaction memory systems track each memory access to manage concurrent execution, then memory access correctness is ensured, but system overhead increases

Engineering Contradiction:
Improvememory access correctnessVSAvoidsystem overhead
Core Design Contradiction:
ReliabilityVSDevice complexity

Solution Approach 1:

The patent creates shadow copies of memory locations that replicate the original memory data. These shadow copies serve as proxies for tracking memory accesses without directly modifying the original memory structure, thereby reducing the overhead of tracking while maintaining correctness. The shadow copy mechanism allows the system to monitor and manage concurrent accesses efficiently.

Inventive Principle:
Principle #26Copying

Solution Approach 2:

The patent introduces shadow copies as intermediary structures between the original memory locations and the transaction memory tracking mechanism. These intermediaries absorb the tracking overhead, allowing the original memory system to operate with minimal interference. The shadow copies act as a buffer that simplifies the complexity of direct memory access tracking.

Inventive Principle:
Principle #24Intermediary (Mediator)

2Manufacturing precision

If shadow copy addresses change across operations to reflect memory modifications, then memory update accuracy is maintained, but pointer stability deteriorates

Engineering Contradiction:
Improvememory update accuracyVSAvoidpointer stability
Core Design Contradiction:
Manufacturing precisionVSStability of the object's composition

Solution Approach 1:

The patent segments the memory tracking functionality by separating the shadow copy structure from the original memory locations. This segmentation allows the shadow copy pointers to remain stable while the actual memory data updates occur in the original locations. The division enables independent management of pointer stability and data accuracy.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent maintains stable shadow copy pointers by creating persistent copies that retain their addresses across operations. The shadow copies serve as stable references that do not change their addressing, while the actual memory updates are reflected through the copy mechanism rather than by changing the pointer addresses themselves.

Inventive Principle:
Principle #26Copying

3Measurement precision

If the system creates new shadow copies for each memory access to ensure accuracy, then memory access precision is improved, but memory usage increases

Engineering Contradiction:
Improvememory access precisionVSAvoidmemory usage
Core Design Contradiction:
Measurement precisionVSQuantity of substance

Solution Approach 1:

The patent merges multiple shadow copy operations by allowing subsequent memory accesses to reuse existing shadow copies when appropriate. Instead of creating a new shadow copy for every access, the system combines multiple accesses into shared shadow copy structures, thereby reducing overall memory consumption while maintaining the precision needed for accurate tracking.

Inventive Principle:
Principle #5Merging (Combining)

Solution Approach 2:

The patent implements a mechanism where shadow copies can be discarded after they have served their tracking purpose and recovered or reused for future operations. This lifecycle management reduces the total number of shadow copies needed in memory at any given time, optimizing memory usage while preserving the precision benefits when shadow copies are actively used.

Inventive Principle:
Principle #34Discarding and recovering

Data Source

PatentUS9047139B2Primitives for software transactional memory
Publication Date: 2015.06.02 MICROSOFT TECHNOLOGY LICENSING LLC
  • US9047139B2 patent drawing
  • US9047139B2 patent drawing
  • US9047139B2 patent drawing

AI summary

Software transactional memory (STM) primitives are provided that allow the results of prior open calls to be used by subsequent open calls either as-is or through another STM primitive that consumes the results of the previous invocation. The STM primitives are configured to ensure that the address of a shadow copy representing a memory location will not changed across a wide range of operations and thereby enable re-use of the shadow copy.