Register Duplication Array Checkpointing for Microprocessor Throughput

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Microprocessors face inefficiencies in throughput due to control and data dependencies, particularly with RAW dependencies caused by move operations, which lead to serialization of instruction execution and increased penalties for misprediction recovery as the speculative instruction window size increases, complicating state maintenance within the processor.

Innovation Solution

Implementing a register rename unit that identifies move operations as zero-cycle operations, assigns the same physical register to source and destination operands, and uses a register duplication array to manage duplicate mappings, allowing for efficient microarchitectural checkpointing and reducing the need for additional content addressable memory entries.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If register renaming is used to allow parallel execution of instructions, then instruction throughput is improved, but RAW dependencies still cause serialization of instruction execution

Engineering Contradiction:
Improveinstruction throughputVSAvoidinstruction execution serialization
Core Design Contradiction:
ProductivityVSEase of operation

Solution Approach 1:

The patent introduces a register duplication array (RDA) that creates duplicate entries for physical registers when move operations are detected. This allows multiple architectural registers to map to the same physical register, effectively copying the register state multiple times to eliminate RAW dependencies while maintaining parallel execution capability

Inventive Principle:
Principle #26Copying

Solution Approach 2:

The patent changes the mapping parameter from one-to-one physical register assignment to one-to-many mapping by using the RDA. When a move operation is detected, the system changes the mapping state to create duplicate entries, transforming the register mapping behavior to eliminate dependencies without serializing execution

Inventive Principle:
Principle #35Parameter changes

2Productivity

If the speculative instruction window size is increased to increase throughput, then instruction level parallelism is improved, but the penalty for misprediction recovery increases

Engineering Contradiction:
Improveinstruction level parallelismVSAvoidmisprediction recovery penalty
Core Design Contradiction:
ProductivityVSLoss of time

Solution Approach 1:

The patent implements microarchitectural checkpointing that creates snapshots of the register duplication array state at specific points during instruction execution. This preliminary action allows the system to quickly restore to a known good state upon misprediction, reducing recovery time even with larger instruction windows

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The checkpointing mechanism creates copies of the RDA state at different points in time. When a misprediction occurs, the system can restore to a previous checkpoint state, effectively copying the correct register mappings without having to re-execute the entire instruction window, thus reducing recovery penalty

Inventive Principle:
Principle #26Copying

3Reliability

If checkpointing is implemented to enable recovery from mispredictions, then reliability is improved, but device complexity and power consumption increase

Engineering Contradiction:
Improvemisprediction recovery capabilityVSAvoidcheckpoint state maintenance
Core Design Contradiction:
ReliabilityVSDevice complexity

Solution Approach 1:

The register duplication array serves multiple functions: it manages register renaming, handles move operations, and provides checkpointing capability. By making the RDA multi-functional, the patent avoids adding separate dedicated checkpointing hardware, thus improving reliability without proportionally increasing device complexity

Inventive Principle:
Principle #6Universality (Multi-functionality)

Solution Approach 2:

The checkpointing system discards the current RDA state and restores to a previous checkpoint state when misprediction occurs. This selective recovering of only the necessary register mappings rather than entire processor state reduces the complexity and power consumption associated with full system checkpointing

Inventive Principle:
Principle #34Discarding and recovering

Data Source

PatentUS9311084B2RDA checkpoint optimization
Publication Date: 2016.04.12 APPLE INC
  • US9311084B2 patent drawing
  • US9311084B2 patent drawing
  • US9311084B2 patent drawing

AI summary

A system and method for efficiently performing microarchitectural checkpointing. A register rename unit within a processor determines whether a physical register number qualifies to have duplicate mappings. Information for maintenance of the duplicate mappings is stored in a register duplicate array (RDA). To reduce the penalty for misspeculation or exception recovery, control logic in the processor supports multiple checkpoints. The RDA is one of multiple data structures to have checkpoint copies of state. The RDA utilizes a content addressable memory (CAM) to store physical register numbers. The duplicate counts for both the current state and the checkpoint copies for a given physical register number are updated when instructions utilizing the given physical register number are retired. To reduce on-die real estate and power consumption, a single CAM entry is stores the physical register number and the other fields are stored in separate storage elements.