Streaming Multiprocessor Flush Mechanism for Data Dependency

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Highly parallel streaming multiprocessor GPGPUs face challenges in handling data dependencies due to the need for complex hardware to synchronize data flow between independent computation units, increasing cost and complexity.

Innovation Solution

A computational apparatus with an array of streaming multiprocessors shares data via a shared memory and employs a flush mechanism to coordinate data availability, using a signal to indicate task completion and trigger data flushes, ensuring data is available for dependent computations.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If snooping techniques or directories are used to monitor and control data flow between streaming multiprocessors, then data dependency coordination is improved, but device complexity and cost increase

Engineering Contradiction:
Improvedata dependency coordinationVSAvoidhardware complexity
Core Design Contradiction:
ReliabilityVSDevice complexity

Solution Approach 1:

The patent extracts the complex snooping and directory hardware from the GPGPU system and replaces it with a simplified flush mechanism. Instead of having continuous monitoring hardware between multiprocessors, the system uses a flush command that simply writes data to shared memory, removing the need for complex inter-processor monitoring infrastructure while maintaining data dependency coordination.

Inventive Principle:
Principle #2Taking out (Extraction)

Solution Approach 2:

The patent introduces shared memory as an intermediary between streaming multiprocessors, replacing direct complex communication paths. The flush mechanism uses this intermediary to coordinate data flow by writing completed data to shared memory, allowing other multiprocessors to access it without requiring complex direct monitoring and control hardware between processors.

Inventive Principle:
Principle #24Intermediary (Mediator)

2Reliability

If complex hardware is used to synchronize data flow between streaming multiprocessors, then data availability for dependent computations is improved, but manufacturing cost increases

Engineering Contradiction:
Improvedata availabilityVSAvoidmanufacturing cost
Core Design Contradiction:
ReliabilityVSEase of manufacture

Solution Approach 1:

The patent removes complex synchronization hardware from the system design, extracting only the essential flush command mechanism that writes data to shared memory. This dramatically reduces manufacturing complexity and cost while maintaining the ability to guarantee data availability for dependent computations through simple write operations rather than complex synchronization protocols.

Inventive Principle:
Principle #2Taking out (Extraction)

Solution Approach 2:

The patent uses simple, inexpensive flush commands and shared memory writes instead of expensive, complex synchronization hardware. The system accepts that individual flush operations may need to be issued and completed sequentially, trading time for reduced hardware complexity and manufacturing cost, using simple disposable write operations rather than persistent complex synchronization infrastructure.

Inventive Principle:
Principle #27Cheap short-living objects (Disposable)

3Productivity

If streaming multiprocessors operate independently without significant direct communication, then parallel processing performance is improved, but data dependency handling becomes difficult

Engineering Contradiction:
Improveparallel processing performanceVSAvoiddata flow control
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The patent uses shared memory as an intermediary that allows independent multiprocessors to communicate data without direct communication paths. The flush mechanism writes to this intermediary, enabling other independent multiprocessors to access the data when needed, maintaining parallel independence while providing a simple mechanism for data dependency coordination through the shared memory intermediary.

Inventive Principle:
Principle #24Intermediary (Mediator)

Solution Approach 2:

The patent uses preliminary flush actions to prepare data in shared memory before dependent computations are needed. By issuing flush commands to write data to shared memory in advance, the system ensures data availability for subsequent dependent operations without requiring complex real-time coordination or communication between independent multiprocessors.

Inventive Principle:
Principle #10Preliminary action

Data Source

PatentUS7523264B1Apparatus, system, and method for dependent computations of streaming multiprocessors
Publication Date: 2009.04.21 NVIDIA CORP
  • US7523264B1 patent drawing
  • US7523264B1 patent drawing
  • US7523264B1 patent drawing

AI summary

An array of streaming multiprocessors shares data via a shared memory. A flushing mechanism is used to guarantee that data required for dependent computations is available in the shared memory.