High-Speed GPU Cache Invalidation via Parallel Micro-Transactions

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Current cache systems in graphics processing devices face challenges in reducing latency due to the large amount of data processed during rendering operations, necessitating improvements in cache memory performance for efficient handling of cache invalidate and write-back requests.

Innovation Solution

The proposed solution involves a high-speed invalidation block that splits requests based on whether they target virtually or physically tagged caches, processes micro-transactions in parallel, and uses invalidated virtual-to-physical address translations to improve cache invalidate and write-back operations, reducing latency and enhancing throughput.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Loss of time

If a cache system is provided to reduce latency, then access time to data is improved, but the complexity of handling cache invalidate and write-back requests increases due to large data amounts in rendering operations

Engineering Contradiction:
Improvecache access latencyVSAvoidcache request handling complexity
Core Design Contradiction:
Loss of timeVSDevice complexity

Solution Approach 1:

The patent divides the cache system into multiple independently operable cache banks. Each cache bank can process invalidate and write-back requests autonomously in parallel, reducing the overall complexity of handling large data amounts by distributing the processing load across multiple segments rather than requiring a single complex processing unit.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent introduces a new dimension of parallel processing by implementing multiple cache banks that can operate simultaneously. This dimensional expansion from a single-cache architecture to a multi-cache-bank architecture enables concurrent processing of multiple requests, reducing latency while managing complexity through spatial distribution of processing tasks.

Inventive Principle:
Principle #17Another dimension (Dimensionality change)

2Productivity

If cache systems process large amounts of rendering data, then data throughput is improved, but the latency for individual cache operations increases

Engineering Contradiction:
Improvecache data throughputVSAvoidcache operation latency
Core Design Contradiction:
ProductivityVSLoss of time

Solution Approach 1:

By segmenting the cache into multiple independent banks, the system can process multiple cache operations simultaneously across different banks. This segmentation allows the system to maintain high throughput by utilizing all cache banks in parallel while keeping individual operation latency low since each bank handles a subset of the total data load.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The multi-cache-bank architecture enables continuous processing of cache requests without idle periods. While one cache bank is servicing a request, other banks can simultaneously service different requests, ensuring that the overall system maintains continuous useful action and high throughput without the latency penalties associated with sequential processing.

Inventive Principle:
Principle #20Continuity of useful action

Data Source

PatentUS10540280B2High-speed selective cache invalidates and write-backs on GPUS
Publication Date: 2020.01.21 ATI TECHNOLOGIES ULC
  • US10540280B2 patent drawing
  • US10540280B2 patent drawing
  • US10540280B2 patent drawing

AI summary

Techniques for performing cache invalidates and write-backs in an accelerated processing device (e.g., a graphics processing device that renders three-dimensional graphics) are disclosed. The techniques involve receiving requests from a “master” (e.g., the central processing unit). The techniques involve invalidating virtual-to-physical address translations in an address translation request. The techniques include splitting up the requests based on whether the requests target virtually or physically tagged caches. Addresses for the portions of a request that target physically tagged caches are translated using invalidated virtual-to-physical address translations for speed. The split up request is processed to generate micro-transactions for individual caches targeted by the request. Micro-transactions for physically and virtually tagged caches are processed in parallel. Once all micro-transactions for a request have been processed, the unit that made the request is notified.