L2 Cache as Unified Load Store Buffer

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing cache systems require separate load and store buffers for data operations with external memory, consuming significant memory space and degrading performance in high-throughput applications like graphics processing.

Innovation Solution

A method where an intermediary cache processes read and write operations without separate load and store buffers by reserving cache lines within the data cache array, allowing for efficient scheduling and prioritization of data operations directly within the cache.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If separate load and store buffers are used for data operations with external memory, then data coherency can be maintained, but memory space is consumed significantly

Engineering Contradiction:
Improvedata coherencyVSAvoidmemory space
Core Design Contradiction:
ReliabilityVSQuantity of substance

Solution Approach 1:

The patent merges the L2 cache and load/store buffers into a unified cache structure. The L2 cache is configured to directly receive load requests from processing clusters and store received data in available cache lines, eliminating the need for separate load buffers. Similarly, store requests write directly to cache lines in the L2 cache, eliminating separate store buffers. This integration maintains data coherency while significantly reducing the memory space required for buffer operations.

Inventive Principle:
Principle #5Merging (Combining)

2Productivity

If dedicated buffers are allocated for high throughput data operations, then data throughput can be maintained, but the amount of memory space required increases

Engineering Contradiction:
Improvedata throughputVSAvoidmemory space
Core Design Contradiction:
ProductivityVSQuantity of substance

Solution Approach 1:

The L2 cache is designed to serve multiple functions simultaneously: it acts as both a data cache for storing frequently accessed data and as a load/store buffer for handling data transfers between external memory and processing clusters. By making the L2 cache universal, the system maintains high data throughput for both cache operations and buffer operations without requiring additional dedicated buffer space, thus optimizing memory space utilization while preserving productivity.

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

3Ease of operation

If separate load and store buffers are implemented, then data transfer operations can be buffered, but device complexity increases

Engineering Contradiction:
Improvedata transfer bufferingVSAvoidbuffer structure
Core Design Contradiction:
Ease of operationVSDevice complexity

Solution Approach 1:

The patent extracts the buffering function from separate dedicated buffers and integrates it directly into the L2 cache structure. Load requests are buffered by storing received data directly in available cache lines within the L2 cache, and store requests are buffered by writing directly to cache lines in the L2 cache. This extraction of the buffering function from separate structures and its integration into the existing L2 cache simplifies the overall device complexity while maintaining the essential data transfer buffering capability.

Inventive Principle:
Principle #2Taking out (Extraction)

Data Source

PatentUS8234478B1Using a data cache array as a DRAM load/store buffer
Publication Date: 2012.07.31 NVIDIA CORP
  • US8234478B1 patent drawing
  • US8234478B1 patent drawing
  • US8234478B1 patent drawing

AI summary

One embodiment of the invention sets forth a mechanism for using the L2 cache as a buffer for data associated with read/write commands that are processed by the frame buffer logic. A tag look-up unit tracks the availability of each cache line in the L2 cache, reserves necessary cache lines for the read/write operations and transmits read commands to the frame buffer logic for processing. A data slice scheduler transmits a dirty data notification to the frame buffer logic when data associated with a write command is stored in an SRAM bank. The data slice scheduler schedules accesses to the SRAM banks and gives priority to accesses requested by the frame buffer logic to store or retrieve data associated with read/write commands. This feature allows cache lines reserved for read/write commands that are processed by the frame buffer logic to be made available at the earliest clock cycle.