Store Buffer Segmentation for Load-Store Forwarding Latency

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

In modern microprocessors, the complexity of data forwarding from a store instruction to a load instruction during out-of-order execution is hindered by the addition of a priority encoder in the store to load forwarding path, which increases timing requirements and limits the maximum operating frequency, thereby affecting computing performance.

Innovation Solution

The method involves finding the correct store instruction corresponding to a load instruction in the first clock cycle and recording an indication, allowing store bypass data to be forwarded in a later clock cycle, while other out-of-order instructions execute, thereby hiding latency and reducing the clock cycle period by splitting the operations of finding and reading the required store instruction.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If a priority encoder is added in the store to load forwarding path to identify the youngest store entry, then the correctness of data forwarding is improved, but the timing requirement increases and the maximum operating frequency is limited

Engineering Contradiction:
Improvecorrectness of data forwardingVSAvoidmaximum operating frequency
Core Design Contradiction:
ReliabilityVSSpeed

Solution Approach 1:

The patent segments the store buffer into multiple sets, with each set containing multiple entries. Instead of using a single priority encoder to select from all store entries, the system uses separate priority encoders for each set, which reduces the complexity and timing requirements of the forwarding path. This segmentation allows the system to maintain correctness while improving operating frequency.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent introduces a new dimension to the store buffer organization by using set indexing. The store buffer is organized as an array of sets, where each set can be independently indexed. This dimensional change allows the priority encoder to operate on a smaller subset of entries (within a set) rather than the entire store buffer, reducing the critical path timing.

Inventive Principle:
Principle #17Another dimension (Dimensionality change)

2Productivity

If multiple issue and out-of-order execution are implemented to increase performance, then the instruction throughput is improved, but the data forwarding logic becomes more complex and requires more computational time

Engineering Contradiction:
Improveinstruction throughputVSAvoiddata forwarding logic complexity
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The patent segments the store buffer into multiple sets that can be independently managed. This segmentation simplifies the data forwarding logic by allowing the system to search within smaller set boundaries rather than searching the entire store buffer. The set-based organization reduces the computational complexity of identifying the youngest store entry while maintaining support for multiple issue and out-of-order execution.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent performs preliminary actions by pre-organizing store entries into sets with associated metadata (such as age information) that facilitates quick identification of the youngest entry. This preliminary organization reduces the computational burden during the forwarding decision process, enabling complex out-of-order execution without proportionally increasing forwarding logic complexity.

Inventive Principle:
Principle #10Preliminary action

3Speed

If the store buffer search and data reading are performed in the same clock cycle, then the forwarding speed is improved, but the clock cycle period must be increased which limits processing frequency

Engineering Contradiction:
Improveforwarding speedVSAvoidclock cycle period
Core Design Contradiction:
SpeedVSLoss of time

Solution Approach 1:

The patent segments the store buffer search operation into set-based searches that can be completed within a shorter time frame. By organizing the store buffer into multiple small sets, the search operation within each set can be completed quickly, allowing the clock cycle period to be reduced while still achieving the necessary forwarding speed through parallel set processing.

Inventive Principle:
Principle #1Segmentation

Data Source

PatentUS7822951B2System and method of load-store forwarding
Publication Date: 2010.10.26 ADVANCED MICRO DEVICES INC
  • US7822951B2 patent drawing
  • US7822951B2 patent drawing
  • US7822951B2 patent drawing

AI summary

A system and method for data forwarding from a store instruction to a load instruction during out-of-order execution, when the load instruction address matches against multiple older uncommitted store addresses or if the forwarding fails during the first pass due to any other reason. In a first pass, the youngest store instruction in program order of all store instructions older than a load instruction is found and an indication to the store buffer entry holding information of the youngest store instruction is recorded. In a second pass, the recorded indication is used to index the store buffer and the store bypass data is forwarded to the load instruction. Simultaneously, it is verified if no new store, younger than the previously identified store and older than the load has not been issued due to out-of-order execution.