Checkpoint Circuitry for Long Latency Instruction Recovery

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Current data processing apparatuses face inefficiencies in checkpointing due to the cost overhead and potential misalignment of checkpoint storage frequency, particularly when dealing with instructions of varying completion latencies, which can lead to unnecessary rewind distances and delayed interrupt responses.

Innovation Solution

Implementing checkpoint circuitry that stores information based on the expected completion latency of instructions, reusing existing branch monitoring mechanisms, and utilizing a pending instruction table to efficiently manage checkpointing for instructions with long completion latencies, allowing for swift recovery and interrupt handling.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Loss of time

If checkpoint information is stored very frequently, then the data processing apparatus can return to more recent checkpoints reducing rewind distance, but the storage overhead and memory requirements increase significantly

Engineering Contradiction:
Improverewind distanceVSAvoidcheckpoint information storage
Core Design Contradiction:
Loss of timeVSQuantity of substance

Solution Approach 1:

The patent applies local quality by differentiating checkpoint storage based on instruction type. Instead of uniform frequent checkpointing, it selectively stores checkpoints only for long-latency instructions (like floating-point divide instructions) that are likely to be interrupted, while skipping short-latency instructions. This localized approach reduces overall checkpoint storage overhead while maintaining adequate rewind capability for critical instructions.

Inventive Principle:
Principle #3Local quality

Solution Approach 2:

The patent changes the parameter of checkpoint frequency based on instruction characteristics. It dynamically determines whether to store a checkpoint by evaluating the expected completion latency of each instruction. For instructions with latency exceeding a threshold (e.g., floating-point divide), checkpoints are stored; for others, they are not. This parameter-based differentiation optimizes the balance between rewind distance and storage overhead.

Inventive Principle:
Principle #35Parameter changes

2Quantity of substance

If checkpoint information is stored on a counter basis (predetermined number of instructions), then storage overhead is reduced, but checkpoints may not be stored at the most desirable points requiring excessive rewind

Engineering Contradiction:
Improvecheckpoint information storageVSAvoidrewind distance
Core Design Contradiction:
Quantity of substanceVSLoss of time

Solution Approach 1:

The patent replaces uniform counter-based checkpointing with localized checkpointing at specific instruction types. Instead of storing checkpoints every N instructions regardless of content, it identifies long-latency instructions as critical points requiring checkpoints. This local quality approach ensures checkpoints are stored precisely where needed (at potentially interruptible long-latency instructions) rather than at arbitrary counter-based intervals, reducing unnecessary rewind distance.

Inventive Principle:
Principle #3Local quality

3Reliability

If the system waits for long-latency instructions to complete before handling interrupts, then instruction execution integrity is maintained, but interrupt response time is significantly delayed

Engineering Contradiction:
Improveinstruction execution integrityVSAvoidinterrupt response time
Core Design Contradiction:
ReliabilityVSSpeed

Solution Approach 1:

The patent applies preliminary action by storing checkpoint information before long-latency instructions complete execution. When an interrupt occurs during a long-latency instruction, the system can immediately restore from the pre-stored checkpoint and resume execution, rather than waiting for the instruction to complete. This preliminary checkpointing enables fast interrupt response while maintaining execution integrity through proper state restoration.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The patent extracts the checkpointing function from the normal instruction completion flow. Instead of requiring instruction completion as a prerequisite for interrupt handling, it separates checkpoint storage from instruction completion, allowing interrupts to be handled independently. The checkpoint information is stored in advance and can be utilized immediately upon interrupt occurrence, decoupling interrupt response from instruction completion timing.

Inventive Principle:
Principle #2Taking out (Extraction)

Data Source

PatentUS9513925B2Marking long latency instruction as branch in pending instruction table and handle as mis-predicted branch upon interrupting event to return to checkpointed state
Publication Date: 2016.12.06 ARM LTD
  • US9513925B2 patent drawing
  • US9513925B2 patent drawing
  • US9513925B2 patent drawing

AI summary

A data processing apparatus and method of data processing are provided. The data processing apparatus comprises execution circuitry configured to execute a sequence of program instructions. Checkpoint circuitry is configured to identify an instance of a predetermined type of instruction in the sequence of program instructions and to store checkpoint information associated with that instance. The checkpoint information identifies a state of the data processing apparatus prior to execution of that instance of the predetermined type of instruction, wherein the predetermined type of instruction has an expected long completion latency. If the execution circuitry does not complete execution of that instance of the predetermined type of instruction due to occurrence of a predetermined event, the data processing apparatus is arranged to reinstate the state of the data processing apparatus with reference to the checkpoint information, such that the execution circuitry is then configured to recommence execution of the sequence of program instructions at that instance of the predetermined type of instruction.