Hardware Transactional Memory Timestamp Conflict Detection

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing multi-processor systems face challenges in maintaining data integrity and performance due to the complexity of programming locks and the cost of previous transactional memory implementations, which require comparing memory transactions across all processes, leading to performance and storage penalties.

Innovation Solution

A hardware-implemented transactional memory system that uses timestamps to manage memory transactions, allowing multiple processors to access the same memory system by recording the start time of transactions and committing them automatically without software intervention, thus avoiding collisions and data integrity issues.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If software-based locks are used to maintain data integrity in multi-processor systems, then data consistency is improved, but programming complexity increases significantly

Engineering Contradiction:
Improvedata consistencyVSAvoidprogramming complexity
Core Design Contradiction:
ReliabilityVSDevice complexity

Solution Approach 1:

The patent replaces software-based locking mechanisms with a hardware-implemented transactional memory system. The hardware automatically manages transaction boundaries, conflict detection, and data consistency through timestamp comparison, eliminating the need for software programmers to manually implement locks and reducing programming complexity while maintaining data consistency.

Inventive Principle:
Principle #28Mechanics substitution (Replace mechanical system)

Solution Approach 2:

The transactional memory system performs self-service by automatically detecting conflicts between transactions and managing data consistency without software intervention. The hardware compares timestamps of concurrent transactions and automatically resolves conflicts, freeing software from the burden of manual lock management.

Inventive Principle:
Principle #25Self-service

2Ease of operation

If previous transactional memory implementations are used, then parallel programming is simplified, but storage requirements and performance penalties increase due to comparing all memory transactions

Engineering Contradiction:
Improveparallel programming simplicityVSAvoidstorage requirements
Core Design Contradiction:
Ease of operationVSQuantity of substance

Solution Approach 1:

The patent extracts only the essential timestamp information from complete memory transactions, storing only the timestamp values rather than full transaction descriptions. This extraction reduces storage requirements significantly while still enabling conflict detection through timestamp comparison, resolving the contradiction between programming simplicity and storage requirements.

Inventive Principle:
Principle #2Taking out (Extraction)

Solution Approach 2:

Instead of comparing all memory transaction details, the system performs partial comparison by examining only the timestamp values associated with memory regions. This partial action approach reduces the computational and storage overhead while maintaining sufficient information for conflict detection and transaction management.

Inventive Principle:
Principle #16Partial or excessive action

Data Source

PatentUS7644238B2Timestamp based transactional memory
Publication Date: 2010.01.05 MICROSOFT TECHNOLOGY LICENSING LLC
  • US7644238B2 patent drawing
  • US7644238B2 patent drawing
  • US7644238B2 patent drawing

AI summary

A hardware implemented transactional memory system includes a mechanism to allow multiple processors to access the same memory system. A set of timestamps are stored that each correspond to a region of memory. A time stamp is updated when any memory in its associated region is updated. For each memory transaction, the time at which the transaction begins is recorded. Write operations that are part of a transaction are performed by writing the data to temporary memory. When a transaction is to be recorded, the hardware automatically commits the transaction by determining whether the timestamps associated with data read for the transaction are all prior to the start time for the transaction. In this manner, the software need not check the data for all other processes or otherwise manage collision of data with respect to different processes. The software need only identify which reads and writes are part of a transaction.