Transactional Memory Cache Backup Copy Allocation Tag

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

In data processing systems employing transactional memory, the existing techniques for managing cache structures face performance issues due to the need to replicate data in memory before writes during transactions and the subsequent requirement to refetch data upon transaction aborts, leading to increased performance impacts.

Innovation Solution

The implementation of an allocation tag mechanism that stores backup copies of data in a cache entry with a specific allocation tag state, allowing the system to invalidate cache entries upon transaction aborts without losing original data, enabling subsequent access to the initial data without re-fetching, thus reducing performance impacts.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If data is replicated in memory before writes during transactions, then data can be restored upon transaction abort, but performance deteriorates due to additional clean operations and refetch requirements

Engineering Contradiction:
Improvedata restoration capabilityVSAvoidtransaction performance
Core Design Contradiction:
ReliabilityVSProductivity

Solution Approach 1:

The patent creates a backup copy of the cache line in a different cache entry before the transaction modifies the original. This backup copy is stored with a special allocation tag that prevents it from being accessed during the transaction. If the transaction aborts, the backup copy can be quickly restored without needing to refetch data from memory, eliminating the need for clean operations and improving both reliability and performance.

Inventive Principle:
Principle #26Copying

2Reliability

If cache lines are invalidated upon transaction abort, then data consistency is maintained, but performance deteriorates due to refetch operations

Engineering Contradiction:
Improvedata consistencyVSAvoidrecovery time
Core Design Contradiction:
ReliabilityVSLoss of time

Solution Approach 1:

The patent performs a preliminary action by creating a backup copy of the cache line before the transaction modifies the original data. This backup copy is prepared in advance and stored with a special allocation tag. When the transaction aborts, the system can immediately restore the backup copy without needing to refetch data from memory, significantly reducing recovery time while maintaining data consistency.

Inventive Principle:
Principle #10Preliminary action

3Reliability

If allocation tag state is used to control cache access, then data protection during transactions is improved, but device complexity increases

Engineering Contradiction:
Improvedata protectionVSAvoidcache management complexity
Core Design Contradiction:
ReliabilityVSDevice complexity

Solution Approach 1:

The patent introduces a new parameter - the allocation tag state - to control cache access. By changing the state of the allocation tag (from normal to a special protected state), the system can easily protect data during transactions without complex hardware modifications. The special allocation tag state acts as a simple flag that prevents access to the backup copy during transactions, providing data protection with minimal added complexity.

Inventive Principle:
Principle #35Parameter changes

Data Source

PatentUS10956206B2Technique for managing a cache memory in a system employing transactional memory including storing a backup copy of initial data for quick recovery from a transaction abort
Publication Date: 2021.03.23 ARM LTD
  • US10956206B2 patent drawing
  • US10956206B2 patent drawing
  • US10956206B2 patent drawing

AI summary

A technique is described for managing a cache structure in a system employing transactional memory. The apparatus comprises processing circuitry to perform data processing operations in response to instructions, the processing circuitry comprising transactional memory support circuitry to support execution of a transaction, and a cache structure comprising a plurality of cache entries for storing data for access by the processing circuitry. Each cache entry has associated therewith an allocation tag, and allocation tag control circuitry is provided to control use of a plurality of allocation tags and to maintain an indication of a current state of each of those allocation tags. The transactional memory support circuitry is arranged, when initial data in a chosen cache entry is to be written to during the transaction, to cause a backup copy of the initial data to be stored in a further cache entry and to cause the allocation tag control circuitry to associate with that further cache entry a selected allocation tag selected for the transaction. The current state of that selected allocation tag is updated to a first state which prevents the processing circuitry from accessing that further cache entry. In the event that the transaction is aborted prior to reaching a transaction end point, the transactional memory support circuitry causes the chosen cache entry to be invalidated, and the allocation tag control circuitry changes the state of the selected allocation tag to a second state that allows the processing circuitry to access the further cache entry. As a result, this enables a hit to subsequently be detected within the cache structure for the initial data without a requirement to refetch the initial data into the cache structure. This can give rise to significant performance enhancements.