Speculative Store Buffer Controller for Out-of-Order Execution

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Current processor microarchitectures face limitations in out-of-order processing of store instructions due to complexities in reordering memory access instructions, particularly with stores, which hinder efficient execution and lead to stalls, especially in the presence of long-latency memory access operations.

Innovation Solution

A speculative store buffer system with a controller that compares store instruction addresses and ages, allowing younger stores to replace older ones and enabling out-of-order execution of stores, while ensuring data validity and proper handling of loads and stores through a load tracking buffer.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If stores are allowed to reorder with other stores to improve execution efficiency, then processor performance is improved, but complexity of managing memory dependencies increases

Engineering Contradiction:
Improveprocessor performanceVSAvoidcomplexity of managing memory dependencies
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The patent segments the store buffer into multiple independent sets (first set and second set), where each set can independently manage stores to specific address ranges. This segmentation allows stores to be reordered within each set while maintaining simpler dependency tracking per set, thus improving overall processor performance without excessively increasing complexity.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent introduces a store buffer as an intermediary structure between store instructions and actual memory execution. The store buffer controller manages the reordering of stores within this intermediary structure using address comparison and age comparison mechanisms, enabling performance improvement while containing the complexity within the buffer management logic.

Inventive Principle:
Principle #24Intermediary (Mediator)

2Productivity

If younger stores replace older stores in the buffer to enable out-of-order execution, then execution efficiency is improved, but risk of data invalidation increases

Engineering Contradiction:
Improveexecution efficiencyVSAvoiddata validity
Core Design Contradiction:
ProductivityVSReliability

Solution Approach 1:

The patent implements dynamic store buffer management where the buffer contents are not static but can be dynamically replaced based on age comparison. Younger stores can replace older stores when address matches are found, enabling out-of-order execution. The dynamic nature is controlled by validity bits and age comparison logic that ensures data validity is maintained despite the dynamic replacements.

Inventive Principle:
Principle #15Dynamics

Solution Approach 2:

The patent uses validity bits and age comparison as a form of prior cushioning to prevent invalid data from being used. Before a younger store replaces an older store, the system checks address matches and age relationships to ensure the replacement is safe. This preemptive validation mechanism cushions against potential data invalidation issues.

Inventive Principle:
Principle #11Beforehand cushioning (Prior cushioning)

3Productivity

If stores are speculatively executed before loads to hide latency, then processor throughput is improved, but complexity of tracking load-store dependencies increases

Engineering Contradiction:
Improveprocessor throughputVSAvoidcomplexity of tracking load-store dependencies
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The patent segments stores into different buffer sets that can be independently managed and speculatively executed. This segmentation allows the processor to speculatively execute stores before loads without having to track all load-store dependencies in a single complex structure, thereby improving throughput while managing complexity through divided responsibility.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent implements feedback mechanisms through address comparison and age comparison that continuously monitor the state of stores in the buffer. When loads are executed, the system checks against the store buffer to detect potential dependencies and handles them appropriately. This feedback loop enables speculative execution while maintaining correct dependency handling.

Inventive Principle:
Principle #23Feedback

Data Source

PatentUS9442735B1Method and apparatus for processing speculative, out-of-order memory access instructions
Publication Date: 2016.09.13 MARVELL ASIA PTE LTD
  • US9442735B1 patent drawing
  • US9442735B1 patent drawing
  • US9442735B1 patent drawing

AI summary

Apparatus having corresponding methods and computer-readable media comprise: a speculative store buffer memory; and a speculative store buffer controller comprising a store address comparator to compare an address of a received store instruction with addresses of store instructions allocated in the speculative store buffer memory, and a store age comparator to compare an age of the received store instruction with an age of a matching store instruction allocated in the speculative store buffer memory, wherein the speculative store buffer controller replaces the store instruction allocated in the speculative store buffer memory with the received store instruction responsive to the store instruction allocated in the speculative store buffer memory being younger than the received store instruction.