Store Queue Architecture Using CAM and Program-Order Queue

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Conventional store queue designs become impractical as they grow in size due to increased memory latencies, leading to performance issues and complexity, with existing solutions either being area-efficient but slow or degrading data cache performance.

Innovation Solution

A store queue architecture utilizing a high-capacity content-addressable memory (CAM) that holds pending stores and a program-order queue to apply stores to the memory subsystem in program order, with a priority CAM and pipeline CAM to manage store order and latency, and a finite state machine to control operations, enabling efficient store queue operations.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Quantity of substance

If conventional store queue designs are used to accommodate larger memory latencies, then the store queue size must increase, but the circuit complexity and practicality decrease

Engineering Contradiction:
Improvestore queue sizeVSAvoidcircuit complexity
Core Design Contradiction:
Quantity of substanceVSDevice complexity

Solution Approach 1:

The patent divides the store queue into two separate data structures: a Bloom filter for fast hit/miss determination and a linear list for storing actual store entries. This segmentation allows the system to handle large numbers of stores without requiring complex circuitry for address matching, as the Bloom filter provides rapid filtering before detailed processing occurs in the linear list.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The Bloom filter acts as an intermediary between the incoming load address and the linear list of stores. It pre-filters addresses to determine if a hit is possible before accessing the full store queue, reducing the complexity of address matching circuitry while maintaining the ability to handle large store queue sizes.

Inventive Principle:
Principle #24Intermediary (Mediator)

2Area of stationary object

If a two-level store queue implementation is used with RAM and linear search, then area efficiency improves, but access speed deteriorates

Engineering Contradiction:
Improvearea efficiencyVSAvoidaccess speed
Core Design Contradiction:
Area of stationary objectVSSpeed

Solution Approach 1:

The Bloom filter performs preliminary action by pre-evaluating whether a hit is possible before the system proceeds to search the linear list. This preliminary filtering prevents unnecessary searches through the entire linear list, significantly improving access speed while maintaining area efficiency through the use of RAM-based implementation.

Inventive Principle:
Principle #10Preliminary action

3Quantity of substance

If L1 data cache is used to hold store values, then store queue capacity increases, but data cache performance deteriorates

Engineering Contradiction:
Improvestore queue capacityVSAvoiddata cache performance
Core Design Contradiction:
Quantity of substanceVSProductivity

Solution Approach 1:

The patent segments the store buffering function from the L1 data cache by implementing a separate store queue structure using Bloom filter and linear list. This segmentation allows the L1 cache to maintain its optimized performance characteristics while the store queue handles store value buffering independently, preventing performance degradation in either component.

Inventive Principle:
Principle #1Segmentation

4Stability of the object's composition

If conventional store queue designs are used, then program order tracking is maintained, but lookup complexity increases when queue size grows

Engineering Contradiction:
Improveprogram order trackingVSAvoidlookup complexity
Core Design Contradiction:
Stability of the object's compositionVSDevice complexity

Solution Approach 1:

The patent segments the functionality of program order tracking from the address lookup process. The Bloom filter handles address-based lookup independently of program order, while program order tracking is maintained separately through the sequential structure of the linear list. This segmentation allows efficient lookup operations without the complexity of maintaining program order within the lookup circuitry itself.

Inventive Principle:
Principle #1Segmentation

Data Source

PatentEP2074511B1Efficient store queue architecture
Publication Date: 2017.05.24 ORACLE AMERICAN INC
  • EP2074511B1 patent drawingFigure 1
  • EP2074511B1 patent drawingFigure 2A
  • EP2074511B1 patent drawingFigure 2B

AI summary

One embodiment of the present invention provides a store queue that applies the stores to a memory subsystem in program order. This store queue includes a content-addressable memory (CAM), which holds pending stores and facilitates looking up stores based on addresses for the stores, wherein the CAM does not keep track of program order between stores to different addresses. The store queue also includes a program-order queue which keeps track of program order between the stores in the CAM and thereby facilitates applying the stores to the memory subsystem in program order. In a variation on this embodiment, the CAM is a priority CAM which holds separate copies of multiple stores with identical addresses, and when a lookup based on an address matches multiple stores, returns the youngest matching store.