Shared Cache Dynamic Buffer Allocation for Pipeline Throughput

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

In processing pipeline architectures, dedicated buffers are inefficient as they consume valuable die area and cannot dynamically adjust to varying consumption and production rates, leading to potential stalling of upstream units.

Innovation Solution

A shared cache is used as a dynamically sized buffer, coupled to pipeline processing units and external memory, allowing storage capacity to be allocated as needed, and informing consumers when data is available and when it can be invalidated, thus avoiding dedicated buffers between units.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If dedicated buffers are deployed between pipeline processing units, then data can be temporarily stored to avoid stalling upstream units, but die area is consumed that would otherwise be used for processing circuitry

Engineering Contradiction:
Improveavoid stalling upstream unitsVSAvoiddie area
Core Design Contradiction:
ReliabilityVSArea of stationary object

Solution Approach 1:

The patent merges the buffer function into the shared cache structure, allowing the cache to serve dual purposes: storing frequently accessed data and temporarily holding intermediate data between pipeline stages. This eliminates the need for separate dedicated buffers, thereby saving die area while maintaining the ability to prevent upstream stalling.

Inventive Principle:
Principle #5Merging (Combining)

Solution Approach 2:

The shared cache is designed to perform multiple functions: it acts as both a data cache for processing units and a buffer for intermediate data between pipeline stages. This multi-functionality allows the same hardware resource to address both caching needs and buffering needs, reducing overall die area consumption.

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

2Productivity

If the size of buffer is increased to accommodate diverse consumption and production rates, then upstream units can avoid stalling, but more die area is consumed

Engineering Contradiction:
Improvesystem throughputVSAvoiddie area
Core Design Contradiction:
ProductivityVSArea of stationary object

Solution Approach 1:

The patent implements dynamic buffer management within the shared cache, where the buffer size and allocation are adjusted based on real-time production and consumption rates. The buffer manager dynamically allocates cache lines to different pipeline stages as needed, allowing the system to accommodate varying throughput requirements without committing fixed die area to maximum buffer size.

Inventive Principle:
Principle #15Dynamics

Solution Approach 2:

The system changes the parameter of buffer size dynamically rather than maintaining a fixed large buffer. The buffer manager adjusts the effective buffer size by allocating and deallocating cache lines based on current pipeline demands, enabling the system to maintain high throughput during peak periods while conserving die area during lower demand periods.

Inventive Principle:
Principle #35Parameter changes

3Reliability

If dedicated buffers are used for each pipeline processing unit, then data storage is guaranteed, but device complexity increases

Engineering Contradiction:
Improvedata storage guaranteeVSAvoidbuffer management complexity
Core Design Contradiction:
ReliabilityVSDevice complexity

Solution Approach 1:

The patent combines multiple buffer functions into a single shared cache structure with a centralized buffer manager. Instead of having separate buffer management logic at each pipeline stage, the buffer manager consolidates buffer allocation, tracking, and invalidation operations, thereby reducing overall device complexity while ensuring data storage reliability through coordinated management.

Inventive Principle:
Principle #5Merging (Combining)

Solution Approach 2:

The buffer manager implements feedback mechanisms to track buffer usage across pipeline stages. By monitoring which cache lines are being used as buffers and by whom, the system can coordinate invalidation and allocation decisions, ensuring data storage reliability without requiring complex dedicated buffer structures at each stage.

Inventive Principle:
Principle #23Feedback

Data Source

PatentUS8504773B1Storing dynamically sized buffers within a cache
Publication Date: 2013.08.06 NVIDIA CORP
  • US8504773B1 patent drawing
  • US8504773B1 patent drawing
  • US8504773B1 patent drawing

AI summary

A system and method for buffering intermediate data in a processing pipeline architecture stores the intermediate data in a shared cache that is coupled between one or more pipeline processing units and an external memory. The shared cache provides storage that is used by multiple pipeline processing units. The storage capacity of the shared cache is dynamically allocated to the different pipeline processing units as needed, to avoid stalling the upstream units, thereby improving overall system throughput.