Write-Combine Buffer Partitioning for Variable Block Streams

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing write combine buffers in processors are inefficient due to weak ordering and suboptimal utilization of buffer space, leading to frequent delays and reduced throughput when handling data streams with varying block sizes.

Innovation Solution

The implementation of a processor with a write-combine buffer that partitions data buffers based on the size of incoming data blocks, allowing dynamic partition adjustment and efficient draining of data to further memory, thereby optimizing buffer utilization and increasing throughput.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Adaptability or versatility

If a fixed-size write-combine buffer is used, then the buffer structure is simple, but the buffer utilization is suboptimal when handling data streams with varying block sizes

Engineering Contradiction:
Improvebuffer utilizationVSAvoidbuffer structure
Core Design Contradiction:
Adaptability or versatilityVSDevice complexity

Solution Approach 1:

The write-combine buffer is divided into multiple partitions, each capable of independently storing data blocks. This segmentation allows the buffer to adapt to varying block sizes by allocating appropriate partitions for different data sizes, thereby improving buffer utilization without requiring a completely complex reconfigurable structure.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The buffer partitioning structure enables dynamic allocation and management of buffer space based on the size of incoming data blocks. The system can dynamically determine which partition to use for each data block, optimizing buffer utilization for different workloads while maintaining a relatively simple underlying buffer structure.

Inventive Principle:
Principle #15Dynamics

2Productivity

If data blocks of varying sizes are handled in a single buffer, then the buffer structure remains simple, but delays increase due to inefficient space utilization

Engineering Contradiction:
ImprovethroughputVSAvoiddelays
Core Design Contradiction:
ProductivityVSLoss of time

Solution Approach 1:

By segmenting the buffer into multiple partitions, the system can efficiently pack data blocks of varying sizes into appropriate partitions, reducing wasted space and minimizing the number of buffer flush operations needed. This increases throughput by keeping more data in the buffer longer and reducing memory access delays.

Inventive Principle:
Principle #1Segmentation

3Adaptability or versatility

If the buffer is partitioned based on block size, then buffer utilization improves, but the complexity of buffer management increases

Engineering Contradiction:
Improvebuffer utilizationVSAvoidbuffer management
Core Design Contradiction:
Adaptability or versatilityVSEase of operation

Solution Approach 1:

The buffer management system operates autonomously, automatically selecting appropriate partitions for incoming data blocks based on their size. This self-service approach improves buffer utilization without requiring complex external management logic, as the partitioning and allocation decisions are made automatically by the buffer management circuitry.

Inventive Principle:
Principle #25Self-service

Data Source

PatentEP4687042A1Configurable partitioning of write combine buffers
Publication Date: 2026.02.04 IMAGINATION TECH LTD
  • EP4687042A1 patent drawingFigure 1
  • EP4687042A1 patent drawingFigure 2
  • EP4687042A1 patent drawingFigure 3

AI summary

There is provided a processor comprising: a data buffer, the data buffer being configured as a write-combine buffer. The processor further comprising logic circuitry which is configured to perform: receiving, from a further entity, an input data stream for a write operation, wherein the input data stream is received in blocks of data, and partitioning the data buffer into partitions, wherein the partitioning is based on a size of the blocks of data that are received. The logic circuitry further configured to perform: writing each of the blocks of data to one of the partitions, each block of data being written to a partition of the data buffer based on an address associated with the respective block of data, and for each of the partitions, determining whether to initiate a draining of the respective partition to further memory based on the data that is stored in the respective partition.