Debugging Speculative Transactions via Software Emulation

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Conventional diagnostic and debugging mechanisms in data processing systems often result in the loss of speculative updates associated with partially completed transactions, making it difficult to understand faults and conflicts, as these updates are typically flushed upon invoking diagnostic/debug mechanisms.

Innovation Solution

The system employs software emulation of transactions to store and preserve speculative updates, allowing for their use in debugging operations while continuing to detect conflicts, and uses non-standard responses to manage memory access requests and control subsequent processing paths.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Ease of operation

If conventional diagnostic and debugging mechanisms are invoked, then debugging capability is improved, but speculative updates are lost

Engineering Contradiction:
Improvedebugging capabilityVSAvoidspeculative updates
Core Design Contradiction:
Ease of operationVSLoss of information

Solution Approach 1:

The patent creates a copy of the speculative updates by storing them in a debug buffer before they are discarded. This allows the debugging mechanism to access and analyze the copied data without affecting the original transaction flow or losing the speculative updates that would normally be flushed upon debug invocation.

Inventive Principle:
Principle #26Copying

2Loss of information

If software emulation is used to preserve speculative updates, then debugging information is preserved, but processing overhead increases

Engineering Contradiction:
Improvespeculative updates preservationVSAvoidprocessing overhead
Core Design Contradiction:
Loss of informationVSDevice complexity

Solution Approach 1:

The patent extracts the speculative update preservation function from the main transaction processing path by implementing it as a separate software emulation layer. This allows the preservation mechanism to operate independently, capturing updates in a debug buffer without requiring complex hardware modifications to the core transaction processing path.

Inventive Principle:
Principle #2Taking out (Extraction)

3Productivity

If parallel processing with speculative updates is implemented, then productivity is improved, but conflict detection complexity increases

Engineering Contradiction:
Improveparallel processing efficiencyVSAvoidconflict detection mechanism
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The patent implements a feedback mechanism where the debug buffer continuously monitors for conflicts between parallel speculative transactions. When a conflict is detected, the system provides feedback to abort the problematic transaction and retry it serially, allowing parallel processing to proceed efficiently while maintaining conflict detection through continuous monitoring rather than complex pre-validation.

Inventive Principle:
Principle #23Feedback

Data Source

PatentUS10394557B2Debugging data processing transactions
Publication Date: 2019.08.27 ARM LTD
  • US10394557B2 patent drawing
  • US10394557B2 patent drawing
  • US10394557B2 patent drawing

AI summary

A data processing system supporting execution of transactions comprising one or more program instructions that execute to generate speculative updates is provided. The speculative updates are committed in normal operation if the transaction completes without a conflict. Start of execution of a transaction may be detected and execution diverted to be performed by software emulation rather than direct execution by the processing hardware. The software emulation may store data representing one or more versions of the speculative updates generated during the emulation. The software emulation may also detect conflicts with the transaction being emulated. In order to facilitate modifying the behaviour of other parts of the system interacting with a transaction under investigation, a non-standard response signal may be returned in response to a detected memory access request to a transaction being emulated. The non-standard response signal may be used to initiate the request source to follow a subsequent path of processing different from that which it would otherwise follow. Support is also provided for detecting a trigger condition which results in the halting (freezing) of a partially completed transaction and the saving the speculative updates associated with that partially completed transaction to the architectural state of the system.