Transactional Call Stack Maintenance via Speculative Modification Filtering

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

In transactional execution mode, maintaining a call stack data structure leads to an undesirably large data set of speculative modifications, which can burden data processors due to the need to roll back to the initial state upon transaction failure, especially in multi-core systems with limited storage capacity.

Innovation Solution

The implementation of pre-transactional stack pointer storage circuitry to store a stack depth indication before entering transactional execution mode, allowing processors to determine the relative stacking position of modifications and label them as non-speculative if in a positive stack growth direction, thereby reducing the data set size by discarding modifications that do not overwrite previous call stack content.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If the processor maintains a call stack data structure in transactional execution mode with speculative modifications, then transactional integrity and rollback capability are ensured, but the size of the data set requiring storage increases undesirably

Engineering Contradiction:
Improvetransactional integrityVSAvoiddata set size
Core Design Contradiction:
ReliabilityVSQuantity of substance

Solution Approach 1:

The patent segments the call stack modifications into two distinct categories: speculative modifications (made during transactional execution) and non-speculative modifications (made outside transactional execution). This segmentation is achieved through separate data structures or flags that track the nature of each modification, allowing the system to manage and store only the necessary speculative modifications while maintaining transactional integrity.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent applies local quality by treating different regions of the call stack differently based on their modification type. Speculative modifications are tracked and stored with additional metadata indicating their speculative nature, while non-speculative modifications are handled differently. This localized differentiation reduces the overall storage burden by only preserving necessary speculative state information.

Inventive Principle:
Principle #3Local quality

2Ease of operation

If all call stack modifications are marked as speculative during transactional execution, then rollback to initial state is possible, but storage capacity is overwhelmed by the large data set

Engineering Contradiction:
Improverollback capabilityVSAvoidstorage capacity
Core Design Contradiction:
Ease of operationVSVolume of stationary object

Solution Approach 1:

The patent extracts only the necessary speculative modifications from the complete call stack modifications and stores them separately. By identifying and isolating only those modifications that were made during transactional execution (as opposed to all modifications), the system maintains rollback capability while significantly reducing the volume of data requiring storage.

Inventive Principle:
Principle #2Taking out (Extraction)

Solution Approach 2:

The patent implements a mechanism where non-speculative modifications are effectively discarded from the speculative modification set, while speculative modifications are preserved for potential recovery. This selective discarding and recovering approach ensures that only the minimal necessary data is stored to enable rollback, preventing storage capacity from being overwhelmed.

Inventive Principle:
Principle #34Discarding and recovering

3Reliability

If the processor tracks all modifications to the call stack in transactional mode, then atomicity is maintained, but the complexity of data management increases

Engineering Contradiction:
ImproveatomicityVSAvoiddata management complexity
Core Design Contradiction:
ReliabilityVSDevice complexity

Solution Approach 1:

The patent applies preliminary action by establishing a clear distinction and tracking mechanism for speculative versus non-speculative modifications before the transactional execution begins or as it progresses. This preliminary categorization simplifies subsequent data management by providing a structured approach to tracking only necessary modifications, thereby maintaining atomicity without excessive complexity.

Inventive Principle:
Principle #10Preliminary action

Data Source

PatentEP3170075B1Call stack maintenance for a transactional data processing execution mode
Publication Date: 2021.01.13 ARM LTD
  • EP3170075B1 patent drawingFigure 1
  • EP3170075B1 patent drawingFigure 2A~2C
  • EP3170075B1 patent drawingFigure 3

AI summary

A data processing apparatus and method of data processing are provided, which relate to the operation of a processor which maintains a call stack in dependence on the data processing instructions executed. The processor is configured to operate in a transactional execution mode when the data processing instructions seek access to a stored data item which is shared with a further processor. When the processor enters its transactional execution mode it stores a copy of the current stack depth indication and thereafter, when operating in its transactional execution mode, further modifications to the call stack are compared to the copy of the stack depth indication stored. If the relative stacking position of the required modification is in a positive stack growth direction with respect to the copy stored, the modification to the call stack is labelled as non-speculative. Conversely if the modification to the call stack is to be made at a relative stacking position which is not in a positive growth direction with respect to the position indicated by the copy stored, then that modification is labelled as speculative. The size of the write-set associated with maintaining the call stack whilst in transactional execution mode can therefore be reduced.