Transactional Call Stack Maintenance via Speculative Modification Filtering
Find Innovative SolutionsGenerate 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
Engineering 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
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.
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.
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
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.
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.
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
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.
Data Source
Figure 1
Figure 2A~2C
Figure 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.