Reservation Station Replay Prevention for X86 Load Instructions

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Out-of-order processors experience significant power wastage due to frequent load replays when accessing resources like fuse arrays and L2 caches, which are shared among cores, leading to increased power utilization and thermal issues.

Innovation Solution

The implementation of a mechanism that includes reservation stations to detect specified load micro instructions directed to non-core resources, stalling younger micro instructions until the load is completed, thereby preventing replay events and reducing power consumption.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Speed

If out-of-order execution is used to improve throughput, then instruction execution speed is improved, but load replay frequency increases causing power wastage

Engineering Contradiction:
Improveinstruction execution speedVSAvoidpower wastage
Core Design Contradiction:
SpeedVSLoss of energy

Solution Approach 1:

The system performs preliminary detection of load instructions that access shared resources (fuse arrays, L2 caches) before they are dispatched for execution. By identifying these instructions in advance and stalling younger dependent instructions, the system prevents replay events before they occur, thereby eliminating the energy waste associated with re-executing instructions that would fail due to resource unavailability.

Inventive Principle:
Principle #10Preliminary action

2Productivity

If load instructions are dispatched aggressively to improve productivity, then throughput is improved, but replay events increase leading to power consumption

Engineering Contradiction:
ImprovethroughputVSAvoidpower consumption
Core Design Contradiction:
ProductivityVSLoss of energy

Solution Approach 1:

The system implements feedback by detecting the completion status of load instructions accessing shared resources and using this information to control the dispatch of younger dependent instructions. When a load instruction completes successfully, the system allows dependent instructions to proceed; when it fails or is stalled, the system prevents dispatch of dependent instructions that would result in replays, thereby reducing energy consumption while maintaining throughput.

Inventive Principle:
Principle #23Feedback

3Adaptability or versatility

If shared resources are accessed by multiple cores, then resource utilization is improved, but load replay frequency increases causing thermal issues

Engineering Contradiction:
Improveresource utilizationVSAvoidthermal management
Core Design Contradiction:
Adaptability or versatilityVSTemperature

Solution Approach 1:

The system performs preliminary detection of load instructions accessing shared resources before dispatch. By identifying these instructions in advance and stalling younger dependent instructions, the system prevents replay events before they occur, thereby reducing the thermal impact of repeated executions while maintaining the benefits of shared resource access across multiple cores.

Inventive Principle:
Principle #10Preliminary action

Data Source

PatentUS9740271B2Apparatus and method to preclude X86 special bus cycle load replays in an out-of-order processor
Publication Date: 2017.08.22 VIA ALLIANCE SEMICON CO LTD
  • US9740271B2 patent drawing
  • US9740271B2 patent drawing
  • US9740271B2 patent drawing

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 received the operand, and is configured to preclude assertion of any indications that would otherwise result in a replay event.