L1 Cache Arbitration for Multithreaded Clients

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Conventional data caches are not designed to handle multiple clients simultaneously, leading to inefficiencies in memory access and increased dedicated storage requirements due to the lack of arbitration schemes for shared memory spaces with different scopes in multithreaded parallel programs.

Innovation Solution

A level-one (L1) cache is configured to arbitrate between multiple clients by incrementing a bubble count and initializing a timeout counter, allowing for shared use of the cache and reducing the need for dedicated buffers and FIFOs, enabling efficient memory access across clients with diverse latency and bandwidth requirements.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Device complexity

If a conventional data cache is used for single client access, then the cache structure is simple and does not require arbitration, but dedicated storage resources must be allocated for each client which increases total storage requirements

Engineering Contradiction:
Improvecache structure complexityVSAvoiddedicated storage resources
Core Design Contradiction:
Device complexityVSQuantity of substance

Solution Approach 1:

The patent merges multiple client-specific storage resources into a single shared L1 cache structure. Instead of having separate caches for each client, the invention combines them into one unified cache that serves multiple clients simultaneously, thereby reducing total storage requirements while managing access through arbitration mechanisms

Inventive Principle:
Principle #5Merging (Combining)

Solution Approach 2:

The L1 cache is designed to serve multiple clients with different access patterns and requirements. The cache structure is made universal by implementing reconfiguration capabilities that allow it to adapt to different client needs, replacing multiple dedicated storage resources with a single multi-functional cache

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

2Quantity of substance

If multiple clients share a common L1 cache, then dedicated storage resources are reduced, but arbitration mechanisms are required which increase device complexity

Engineering Contradiction:
Improvededicated storage resourcesVSAvoidarbitration mechanism complexity
Core Design Contradiction:
Quantity of substanceVSDevice complexity

Solution Approach 1:

The arbitration mechanism is made dynamic and reconfigurable rather than static. The L1 cache can be reconfigured to create multiple storage spaces and adjust arbitration policies based on client requirements, allowing the system to adapt to different scenarios without requiring overly complex fixed arbitration logic

Inventive Principle:
Principle #15Dynamics

Solution Approach 2:

The shared L1 cache is segmented into multiple storage spaces that can be dynamically allocated to different clients. This segmentation allows the arbitration mechanism to manage access more efficiently by directing clients to appropriate segments, reducing the complexity of arbitration compared to managing a completely unified space

Inventive Principle:
Principle #1Segmentation

3Quantity of substance

If a shared L1 cache arbitrates between multiple clients with diverse latency and bandwidth requirements, then storage efficiency improves, but access time variability increases due to arbitration delays

Engineering Contradiction:
Improvestorage efficiencyVSAvoidaccess time variability
Core Design Contradiction:
Quantity of substanceVSLoss of time

Solution Approach 1:

The system performs preliminary actions by pre-configuring storage spaces and arbitration policies based on predicted client needs. The L1 cache can be reconfigured in advance to create optimal storage spaces for upcoming client requests, and arbitration policies can be pre-established to minimize access time variability for different client types

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The invention changes parameters of the cache system dynamically, including storage space allocation, arbitration priority levels, and cache reconfiguration settings. By adjusting these parameters based on client requirements and system state, the system optimizes the balance between storage efficiency and access time performance

Inventive Principle:
Principle #35Parameter changes

Data Source

PatentUS8335892B1Cache arbitration between multiple clients
Publication Date: 2012.12.18 NVIDIA CORP
  • US8335892B1 patent drawing
  • US8335892B1 patent drawing
  • US8335892B1 patent drawing

AI summary

One embodiment of the present invention sets forth a technique for arbitrating requests received by an L1 cache from multiple clients. The L1 cache outputs bubble requests to a first one of the multiple clients that cause the first one of the multiple clients to insert bubbles into the request stream, where a bubble is the absence of a request. The bubbles allow the L1 cache to grant access to another one of the multiple clients without stalling the first one of the multiple clients. The L1 cache services multiple clients with diverse latency and bandwidth requirements and may be reconfigured to provide memory spaces for clients executing multiple parallel threads, where the memory spaces each have a different scope.