Write Combining Buffer for Ordered Store Release Processing

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

The use of store release instructions in processor pipelines leads to reduced throughput performance due to the need to wait for all pending, older store instructions to be committed before processing can continue, causing pipeline bubbles and inefficiencies, especially when a large number of such instructions are used.

Innovation Solution

A write buffer circuit is configured to allow store release instructions to be launched into a combining buffer even if there are pending, older store instructions not yet committed, delaying the release of these instructions until all pending store instructions have been committed, thereby avoiding pipeline bubbles and enabling combining of multiple store release instructions for efficient processing.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If store release instructions wait for all pending older store instructions to be committed before processing, then memory ordering correctness is ensured, but processor throughput performance deteriorates due to pipeline bubbles

Engineering Contradiction:
Improvememory ordering correctnessVSAvoidprocessor throughput performance
Core Design Contradiction:
ReliabilityVSProductivity

Solution Approach 1:

The write buffer circuit launches store release instructions into the combining buffer in advance, before all pending older store instructions have been committed. This preliminary action allows the instruction pipeline to continue processing without bubbles, while the actual memory write operation is delayed until ordering requirements are satisfied. The combining buffer holds the instruction until it can be safely processed.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The write buffer circuit is divided into two functional components: a store queue for receiving instructions and a combining buffer for holding store release instructions. This segmentation allows different parts of the buffer circuit to perform different functions - the store queue can accept instructions continuously while the combining buffer manages the ordering constraints for store release instructions, thereby maintaining throughput while ensuring correctness.

Inventive Principle:
Principle #1Segmentation

2Reliability

If store release instructions are delayed until all pending store instructions are committed, then memory consistency is maintained, but pipeline efficiency deteriorates due to empty buffer states

Engineering Contradiction:
Improvememory consistencyVSAvoidpipeline bubble time
Core Design Contradiction:
ReliabilityVSLoss of time

Solution Approach 1:

Store release instructions are launched into the combining buffer preliminarily, before the commit condition is satisfied. This allows the pipeline to remain full and efficient, while the actual write operation is postponed. The combining buffer acts as a holding area that decouples instruction launch from instruction execution timing.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The combining buffer serves as an intermediary structure between the store queue and the memory write operation. It receives store release instructions from the store queue and holds them until all pending older store instructions are committed, then releases them for processing. This intermediary buffers the timing discrepancy between instruction launch and execution.

Inventive Principle:
Principle #24Intermediary (Mediator)

3Reliability

If store release instructions are processed sequentially after all pending stores are committed, then ordering semantics are preserved, but write buffer utilization deteriorates due to empty buffer states

Engineering Contradiction:
Improveordering semanticsVSAvoidwrite buffer utilization
Core Design Contradiction:
ReliabilityVSProductivity

Solution Approach 1:

The combining buffer preliminarily accepts and holds store release instructions from the store queue, keeping the write buffer circuit utilized and busy. The instructions are held in the combining buffer until the ordering condition is met, at which point they are processed in the correct order. This maintains both buffer utilization and ordering semantics.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

Multiple store release instructions are combined and held together in the combining buffer until they can be processed. This merging allows the buffer to remain full and utilized, while still maintaining the required ordering semantics by processing all combined instructions only after all pending older store instructions are committed.

Inventive Principle:
Principle #5Merging (Combining)

Data Source

PatentUS12487823B1Write buffer circuit supporting store release combining of store operations from a memory access stage of a processor instruction pipeline for efficient processing of store release instructions, and related methods
Publication Date: 2025.12.02 QUALCOMM INC
  • US12487823B1 patent drawing
  • US12487823B1 patent drawing
  • US12487823B1 patent drawing

AI summary

Write buffer circuit supporting store release combining of store operations from a memory access stage of a processor instruction pipeline for efficient processing of store release instructions, and related methods. The write buffer circuit is interfaced with an instruction pipeline of a processor to receive and commit (write data) executed store instructions to memory. The write buffer circuit allows launching of store release instructions from a store queue (STQ) to a write combining buffer (WCB) even if pending, older store instructions are not yet committed to non-cacheable memory. The write buffer circuit is configured to delay release of store release instructions from the WCB for their data to be written to non-cacheable memory until any pending, older store instructions have been committed. This facilitates combining of address related store-release instructions in the WCB that can be written to memory in a single write operation.