Write Combining Cache Pipelined Synchronization

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Conventional cache architectures and write combining buffers synchronize data in a way that prevents concurrent updates and flushing, leading to performance degradation by stalling incoming data during cache-line flushing.

Innovation Solution

A write combining cache system that combines multiple memory transactions into a single transaction, allowing concurrent updates and flushing of cache-lines using a cache update module, event module, and flush module, enabling pipelined synchronization and efficient bandwidth utilization.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If conventional synchronization methods are used to flush cache-lines to memory, then data consistency is maintained, but incoming data is stalled and performance is degraded

Engineering Contradiction:
Improvedata consistencyVSAvoiddata transfer performance
Core Design Contradiction:
ReliabilityVSProductivity

Solution Approach 1:

The cache is divided into multiple independent cache-line entries, each with its own valid bit and flush status. This allows individual cache-lines to be flushed independently while others remain accessible for incoming data, eliminating the need to stall the entire cache during flush operations.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The flush operation is initiated in advance for specific cache-lines that need to be written back to memory, while the cache continues to accept and store incoming data in other locations. This preliminary flushing of selected lines prevents subsequent stalls when those lines need to be updated.

Inventive Principle:
Principle #10Preliminary action

2Reliability

If the cache is updated with new data, then data freshness is improved, but concurrent flushing operations cannot proceed

Engineering Contradiction:
Improvedata freshnessVSAvoidflush operation time
Core Design Contradiction:
ReliabilityVSLoss of time

Solution Approach 1:

The cache architecture enables continuous operation by allowing update and flush operations to proceed concurrently on different cache-lines. The update module can write new data to valid cache-lines while the flush module simultaneously writes back invalid cache-lines to memory, maximizing utilization of the cache structure.

Inventive Principle:
Principle #20Continuity of useful action

Solution Approach 2:

The cache dynamically manages the state of each cache-line independently, with valid bits indicating whether a line contains valid data that can be updated or needs to be flushed. This dynamic state management enables flexible concurrent operations without conflict.

Inventive Principle:
Principle #15Dynamics

3Manufacturing precision

If multiple write operations are processed individually, then data accuracy is maintained, but bandwidth utilization is inefficient

Engineering Contradiction:
Improvedata accuracyVSAvoidbandwidth utilization
Core Design Contradiction:
Manufacturing precisionVSProductivity

Solution Approach 1:

Multiple individual write operations to the same cache-line are merged into a single combined write operation. The cache combines duplicate writes and generates one consolidated flush transaction to memory, reducing the total number of memory transactions while maintaining data accuracy through the valid bit mechanism that tracks which cache-lines need flushing.

Inventive Principle:
Principle #5Merging (Combining)

Data Source

PatentUS8190826B2Write combining cache with pipelined synchronization
Publication Date: 2012.05.29 ADVANCED MICRO DEVICES INC
  • US8190826B2 patent drawing
  • US8190826B2 patent drawing
  • US8190826B2 patent drawing

AI summary

Systems and methods for pipelined synchronization in a write-combining cache are described herein. An embodiment to transmit data to a memory to enable pipelined synchronization of a cache includes obtaining a plurality of synchronization events for transactions with said memory, calculating one or more matches between said events and said data stored in one or more cache-lines of said cache, storing event time stamps of events associated with said matches, generating one or more priority values based on said event time stamps, concurrently transmitting said data to said memory based on said priority values.