Out-of-order processor load fault resolution via instant reclamation

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

In computer processor architectures, load faults in out-of-order execution are typically resolved at retirement, which nullifies the benefits of out-of-order execution as all preceding instructions have already executed, whereas instant reclamation for mis-predicted branches allows faults to be detected and resolved during execution, not providing this capability for load instructions.

Innovation Solution

The implementation of an instant reclamation system that detects and resolves load faults as soon as they occur, allowing faulty load instructions to be re-fetched and re-executed out-of-order, similar to mis-predicted branches, by utilizing a memory ordering buffer, reservation station, and load information table to generate an early instant reclamation request and reconstruct the load address based on preceding branch instructions.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If load faults are resolved at retirement of the load instruction, then the fault resolution is simple and follows the traditional retirement process, but the benefits of out-of-order execution are nullified since all preceding instructions have already executed and the load instruction is now being executed in program order

Engineering Contradiction:
Improveout-of-order execution efficiencyVSAvoidfault resolution complexity
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The patent applies preliminary action by detecting load faults during the execution phase (before retirement) and immediately initiating re-fetching and re-execution. The memory ordering buffer monitors load instructions and detects faults as they occur, triggering instant reclamation before the instruction reaches retirement. This allows the processor to correct faults while maintaining out-of-order execution benefits, rather than waiting until retirement when all preceding instructions have already executed.

Inventive Principle:
Principle #10Preliminary action

2Loss of time

If instant reclamation is implemented for load instructions, then faster fault resolution is achieved by detecting and re-fetching faults during execution, but the device complexity increases compared to traditional retirement-based resolution

Engineering Contradiction:
Improvefault resolution timeVSAvoidinstant reclamation system complexity
Core Design Contradiction:
Loss of timeVSDevice complexity

Solution Approach 1:

The patent applies universality by extending the instant reclamation mechanism, originally designed for mis-predicted branches, to also handle load instruction faults. The memory ordering buffer and associated structures are enhanced to serve dual purposes: monitoring both branch predictions and load instructions for faults. This multi-functional approach allows the same infrastructure to handle different types of faults, reducing the need for separate dedicated systems and mitigating the complexity increase.

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

Solution Approach 2:

The patent introduces the memory ordering buffer as an intermediary component that mediates between the execution units and the fault resolution mechanism. This buffer monitors load instructions, detects faults, and triggers re-fetching operations. By placing this intermediary layer, the system can detect and resolve faults during execution without requiring complex direct integration between all execution units and the fault handling logic, thus managing complexity while enabling fast fault resolution.

Inventive Principle:
Principle #24Intermediary (Mediator)

3Use of energy by moving object

If load faults are detected and resolved at retirement, then the fault detection mechanism is simple and relies on existing retirement infrastructure, but power consumption increases due to the need to re-execute instructions after retirement

Engineering Contradiction:
Improvepower consumptionVSAvoidfault detection capability
Core Design Contradiction:
Use of energy by moving objectVSDifficulty of detecting and measuring

Solution Approach 1:

The patent applies preliminary action by detecting load faults during the execution phase (before retirement) and immediately initiating re-fetching and re-execution. The memory ordering buffer monitors load instructions and detects faults as they occur, triggering instant reclamation before the instruction reaches retirement. This allows the processor to correct faults while maintaining out-of-order execution benefits, rather than waiting until retirement when all preceding instructions have already executed.

Inventive Principle:
Principle #10Preliminary action

Data Source

PatentUS10402263B2Accelerating memory fault resolution by performing fast re-fetching
Publication Date: 2019.09.03 INTEL CORP
  • US10402263B2 patent drawing
  • US10402263B2 patent drawing
  • US10402263B2 patent drawing

AI summary

A method for handling load faults in an out-of-order processor is described. The method includes detecting, by a memory ordering buffer of the out-of-order processor, a load fault corresponding to a load instruction that was executed out-of-order by the out-of-order processor; determining, by the memory ordering buffer, whether instant reclamation is available for resolving the load fault of the load instruction; and performing, in response to determining that instant reclamation is available for resolving the load fault of the load instruction, instant reclamation to re-fetch the load instruction for execution prior to attempting to retire the load instruction.