Out-of-order checkpoint reclamation in CPR microarchitecture

Solution Overview

Problem

ROB-based microarchitectures face limitations in growing the speculative window due to the dependency on PRF size, leading to performance issues and checkpoint overhead problems, as frequent checkpointing ties up resources and mis-predictions can result in redoing work.

Innovation Solution

Implementing a Checkpoint Processing and Recovery (CPR) microarchitecture that allows for aggressive register reclamation and dynamic speculative window adjustment by creating checkpoints only at low-confidence branches, enabling out-of-order checkpoint reclamation and reducing the need for frequent checkpointing, thereby increasing the speculative window size without increasing PRF size.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Volume of moving object

If ROB size is increased to grow the speculative window, then the speculative window size increases, but the PRF size must also increase which hurts the clock frequency

Engineering Contradiction:
Core Design Contradiction:
Volume of moving objectVSSpeed

Solution Approach 1:

The patent segments the register file into two distinct parts: a Commit Queue (CQ) for tracking committed instructions and a Physical Register File (PRF) for holding register values. This segmentation allows the CQ to grow with ROB size while the PRF remains small and frequency-critical, resolving the contradiction between speculative window size and clock frequency.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent extracts the commit tracking functionality from the PRF by introducing a separate CQ structure. The CQ stores commit information for instructions in the speculative window, while the PRF only stores actual register values. This extraction allows independent scaling of CQ (with ROB) while keeping PRF small for frequency.

Inventive Principle:
Principle #2Taking out (Extraction)

2Measurement precision

If frequent checkpointing is implemented to enable precise rollback, then rollback precision improves, but checkpoint overhead increases and resources are tied up

Engineering Contradiction:
Core Design Contradiction:
Measurement precisionVSLoss of time

Solution Approach 1:

The patent applies local quality by creating checkpoints selectively only at branch instructions rather than at every instruction. This localized checkpointing provides sufficient rollback precision for the most critical points (branch mispredictions) while avoiding the overhead of frequent unnecessary checkpoints at non-branch instructions.

Inventive Principle:
Principle #3Local quality

Solution Approach 2:

The patent uses partial action by implementing checkpointing only where necessary (at branches) rather than universally at every instruction. This partial checkpointing approach provides adequate rollback capability for the most important error cases while significantly reducing overall checkpoint overhead and resource consumption.

Inventive Principle:
Principle #16Partial or excessive action

3Reliability

If checkpoints are created at every branch to ensure rollback capability, then rollback capability improves, but the number of checkpoints increases causing resource exhaustion

Engineering Contradiction:
Core Design Contradiction:
ReliabilityVSDevice complexity

Solution Approach 1:

The patent applies local quality by creating checkpoints selectively only at branch instructions rather than at every instruction. This localized checkpointing provides sufficient rollback precision for the most critical points (branch mispredictions) while avoiding the overhead of frequent unnecessary checkpoints at non-branch instructions.

Inventive Principle:
Principle #3Local quality

Data Source

PatentUS9262170B2Out-of-order checkpoint reclamation in a checkpoint processing and recovery core microarchitecture
Publication Date: 2016.02.16
  • US9262170B2 patent drawing
  • US9262170B2 patent drawing
  • US9262170B2 patent drawing

AI summary

Reclaiming checkpoints in a system in an order that differs from the order when the checkpoints are created. Reclaiming the checkpoints includes: creating one or more checkpoints, each of which having an initial state using system resources and holding the checkpoints state; identifying the completion of all the instructions associated with the checkpoint; reassigning all the instructions associated with the identified checkpoint to an immediately preceding checkpoint; and freeing the resources associated with the identified checkpoint. The checkpoint is created when the instruction that is checked is a conditional branch having a direction that cannot be predicted with a predetermined confidence level.