Flush Operation Mechanism for Data Coherency

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Data processing systems with multiple independent processes face inefficiencies in maintaining data coherency due to serial flush operations and interlocking mechanisms, leading to unnecessary stalls and high latency.

Innovation Solution

A method where a first flush operation is initiated, and additional flush requests are combined into a single outstanding flush operation, with completion indicated by a status register, allowing concurrent execution and reducing latency.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If serial flush operations are used to ensure data coherency, then data consistency is maintained, but processing latency increases and productivity decreases

Engineering Contradiction:
Improvedata coherencyVSAvoidflush latency
Core Design Contradiction:
ReliabilityVSLoss of time

Solution Approach 1:

The patent merges multiple independent flush operations into a single collective flush operation. When multiple processes initiate flush operations, they are combined into one unified flush that maintains data coherency for all processes simultaneously, eliminating the need for sequential execution and reducing total flush latency.

Inventive Principle:
Principle #5Merging (Combining)

Solution Approach 2:

The patent introduces a flush manager as an intermediary component that coordinates flush operations across multiple processes. The flush manager receives flush requests from multiple processes, combines them into a single operation, and manages the execution, thereby mediating between individual process needs and system-wide data coherency requirements.

Inventive Principle:
Principle #24Intermediary (Mediator)

2Reliability

If interlocking mechanisms are used to control flush access, then data coherency is ensured, but device complexity increases and ease of operation decreases

Engineering Contradiction:
Improvedata coherencyVSAvoidflush mechanism complexity
Core Design Contradiction:
ReliabilityVSDevice complexity

Solution Approach 1:

The patent implements a universal flush mechanism that serves multiple processes simultaneously through a single flush operation. The flush manager provides a unified interface that handles flush requests from any number of processes, eliminating the need for separate interlocking mechanisms for each process and reducing overall system complexity.

Inventive Principle:
Principle #6Universality (Multi-functionality)

3Reliability

If independent flush operations are initiated for each process, then data coherency is maintained, but productivity decreases due to unnecessary stalls

Engineering Contradiction:
Improvedata coherencyVSAvoidprocessing throughput
Core Design Contradiction:
ReliabilityVSProductivity

Solution Approach 1:

The patent combines multiple independent flush operations into a single collective operation that serves all processes simultaneously. This merging eliminates unnecessary stalls because processes do not need to wait for individual flush operations to complete sequentially, thereby maintaining data coherency while improving processing throughput.

Inventive Principle:
Principle #5Merging (Combining)

Data Source

PatentUS7685370B1Data synchronization with multiple producers
Publication Date: 2010.03.23 NVIDIA CORP
  • US7685370B1 patent drawing
  • US7685370B1 patent drawing
  • US7685370B1 patent drawing

AI summary

A data processing system can establish or maintain data coherency by issuing a data flush operation. An agent can initialize a first flush operation by writing to a flush register. The agent can determine that the flush operation is complete by reading a status indicator from a status register. Additional agents can independently issue flush operations during the pendency of the first flush operation. A second flush instruction and any additional flush instructions that issue during the pendency of the first flush operation set a flush pending indicator in a status register. Once the first flush operation completes, the host performs all pending flush operations in a single second flush operation. The status indicator does not indicate a completed flush operation for the first flush operation until all flush operations are complete. Multiple co-pending flush operations are collapsed into at most two flush operations.