Off-Core Load Replay Prevention in Out-of-Order Processors

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

In multi-core processors, the power consumption is increased due to frequent replays of instructions when loading operands from off-core resources, which are infrequently accessed and take longer to retrieve, leading to unnecessary power usage and performance penalties.

Innovation Solution

A mechanism is introduced to detect load instructions directed to off-core resources and stall dependent micro-instructions until the load is completed, preventing replay events and allowing execution units to enter power management modes, thereby reducing the number of replays and conserving power.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If load acceleration technique is applied to all load instructions, then performance improvement is substantial, but power consumption increases due to unnecessary replays

Engineering Contradiction:
ImproveperformanceVSAvoidpower consumption
Core Design Contradiction:
ProductivityVSUse of energy by moving object

Solution Approach 1:

The patent applies different handling strategies to different types of load instructions. Specifically, it identifies and treats x86 special bus cycle load instructions differently from regular load instructions. By detecting the special bus cycle type and preventing replay assertion for these specific cases while maintaining normal acceleration for other loads, the system optimizes performance for each category appropriately and avoids unnecessary power consumption from redundant replays of special bus cycle loads.

Inventive Principle:
Principle #3Local quality

2Productivity

If younger instructions are dispatched early assuming operand availability, then throughput improves, but replay events occur when operands are not ready

Engineering Contradiction:
ImprovethroughputVSAvoidexecution correctness
Core Design Contradiction:
ProductivityVSReliability

Solution Approach 1:

The patent implements preliminary detection of x86 special bus cycle load instructions before dispatching dependent younger instructions. By identifying these special load types in advance and setting a flag to prevent replay assertion, the system ensures that younger instructions are dispatched early with the knowledge that replay will be suppressed for these specific cases, maintaining throughput while ensuring execution correctness.

Inventive Principle:
Principle #10Preliminary action

3Device complexity

If resources are placed in common area rather than replicated per core, then device complexity reduces, but access time increases

Engineering Contradiction:
Improveresource replicationVSAvoidaccess time
Core Design Contradiction:
Device complexityVSSpeed

Solution Approach 1:

The patent introduces an intermediary mechanism in the form of a detection and flagging system that identifies loads from shared resources (such as fuse arrays, interrupt controllers, or L2 caches) and marks them specially. This intermediary layer allows the processor to differentiate between loads from shared resources and loads from private resources, enabling appropriate replay suppression for shared resource accesses while maintaining normal behavior for private resource accesses.

Inventive Principle:
Principle #24Intermediary (Mediator)

Data Source

PatentEP3032406B1Apparatus and method to preclude x86 special bus cycle load replays in an out-of-order processor
Publication Date: 2018.09.19 VIA ALLIANCE SEMICON CO LTD
  • EP3032406B1 patent drawingFigure 1
  • EP3032406B1 patent drawingFigure 2
  • EP3032406B1 patent drawingFigure 3

AI summary

An apparatus including first and second reservation stations. The first reservation station dispatches a load micro instruction, and indicates on a hold bus if the load micro instruction is a specified load micro instruction directed to retrieve an operand from a prescribed resource other than on-core cache memory, where the specified load instruction comprises a load instruction resulting from execution of an x86 special bus cycle. The second reservation station is coupled to the hold bus, and dispatches one or more younger micro instructions therein that depend on the load micro instruction for execution after a number of clock cycles following dispatch of the first load micro instruction, and if it is indicated on the hold bus that the load micro instruction is the specified load micro instruction, the second reservation station is configured to stall dispatch of the one or more younger micro instructions until the load micro instruction has retrieved the operand.