Transactional Memory Read-Set Encoding via Replaceable Cache Values

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing data processing systems face inefficiencies in managing shared resources among threads, as lock-based approaches can lead to performance losses due to unnecessary waiting, while transactional memory support can improve concurrency but requires additional storage for read-set information.

Innovation Solution

The system employs transactional memory support circuitry to execute transactions speculatively, with processing circuitry preventing result commitment until the transaction end, and uses replaceable-information values in the cache to encode read-set information without requiring additional storage, leveraging redundancy for error detection and efficient cache eviction.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If lock-based approaches are used to control access to shared resources, then thread safety is ensured, but performance is degraded due to unnecessary waiting

Engineering Contradiction:
Improvethread safetyVSAvoidperformance
Core Design Contradiction:
ReliabilityVSProductivity

Solution Approach 1:

The patent inverts the traditional lock-based pessimistic approach by implementing optimistic transactional memory. Instead of preventing access and requiring lock acquisition before accessing shared resources, the system allows threads to access shared resources freely within transaction boundaries, then validates and commits changes only if no conflicts occurred. This inversion eliminates unnecessary waiting while maintaining thread safety through conflict detection and abort mechanisms.

Inventive Principle:
Principle #13The other way round (Inversion)

2Productivity

If transactional memory support is used to improve concurrency, then performance is improved, but additional storage is required for read-set information

Engineering Contradiction:
Improveconcurrency performanceVSAvoidstorage space
Core Design Contradiction:
ProductivityVSQuantity of substance

Solution Approach 1:

The patent makes the cache entries universal by enabling them to serve dual purposes: storing data values for normal cache operations and storing read-set information for transactional memory operations. The cache entry structure is designed to accommodate both functions, with the data field being used as the read-set tracker during transaction execution. This eliminates the need for separate storage structures for read-set information while maintaining full transactional memory functionality.

Inventive Principle:
Principle #6Universality (Multi-functionality)

Solution Approach 2:

The patent merges the read-set tracking functionality with the existing cache structure. Instead of implementing a separate read-set data structure that would consume additional storage, the system combines both functionalities into the cache entries themselves. The data field in each cache entry serves as both the stored value and the read-set indicator, effectively merging two previously separate requirements into a single unified structure.

Inventive Principle:
Principle #5Merging (Combining)

Data Source

PatentUS10783031B2Identifying read-set information based on an encoding of replaceable-information values
Publication Date: 2020.09.22 ARM LTD
  • US10783031B2 patent drawing
  • US10783031B2 patent drawing
  • US10783031B2 patent drawing

AI summary

An apparatus comprises processing circuitry, transactional memory support circuitry and a cache. The processing circuitry processes threads of data processing, and the transactional memory support circuitry supports execution of a transaction within a thread, including tracking a read set of addresses, comprising addresses accessed by read instructions within the transaction. A transaction comprises instructions for which the processing circuitry is configured to prevent commitment of the results of speculatively executed instruction until the transaction has completed. The cache has a plurality of entries, each associated with an address and specifying a replaceable-information value for that address that comprises information for which, outside of the transaction, processing would be functionally correct even if the information was incorrect. While the transaction is pending, the transactional memory support circuitry identifies, based on an encoding of the replaceable-information values, read-set information identifying addresses in the read set tracked for the transaction.