Multi-bank Cache for Vector Memory Access

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Current cache systems, particularly in SIMD operations, face performance bottlenecks due to limitations in single-bank cache architectures, where only one cache line can be retrieved per cycle, limiting the simultaneous access to multiple cache lines required for vector memory access requests.

Innovation Solution

Implementing a multi-bank cache architecture where cache lines are evenly distributed across multiple banks to allow simultaneous access to cache lines from different banks, with a cache controller that determines bank allocation priorities to maximize bandwidth by spreading cache line allocations across banks.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If a single-bank cache architecture is used, then the cache structure is simple and easy to implement, but only one cache line can be retrieved per cycle, limiting memory access bandwidth

Engineering Contradiction:
Improvememory access bandwidthVSAvoidcache structure complexity
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The cache is divided into multiple independent banks, where each bank can independently store and retrieve cache lines. This segmentation allows parallel access to multiple cache lines simultaneously, increasing memory access bandwidth from one line per cycle to multiple lines per cycle, directly resolving the bandwidth limitation of single-bank architectures.

Inventive Principle:
Principle #1Segmentation

2Productivity

If cache lines are accessed sequentially in a single bank, then the access control is simple, but vector memory access requests cannot be serviced efficiently

Engineering Contradiction:
Improvevector memory access efficiencyVSAvoidaccess control complexity
Core Design Contradiction:
ProductivityVSEase of operation

Solution Approach 1:

By segmenting the cache into multiple banks, the system can service vector memory access requests that require simultaneous access to multiple cache lines. Each bank independently handles portions of the vector request, enabling efficient parallel servicing without complex sequential control logic.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The cache controller dynamically allocates cache lines to different banks based on the access pattern and request type. For vector memory access requests, the controller distributes cache line allocations across multiple banks to maximize parallel access efficiency, adapting the access strategy to the specific operation requirements.

Inventive Principle:
Principle #15Dynamics

Data Source

PatentUS11182292B1Multi-bank cache
Publication Date: 2021.11.23 ADVANCED MICRO DEVICES INC
  • US11182292B1 patent drawing
  • US11182292B1 patent drawing
  • US11182292B1 patent drawing

AI summary

Techniques are disclosed for processing cache operations. The techniques include determining a set of cache lines that include data for a vector memory access request; determining bank allocation priorities for the set of cache lines, wherein the bank allocation priorities are chosen to result in the set of cache lines being evenly distributed among the banks; determining actual banks for the set of cache lines; and accessing the cache lines in one or more access iterations, wherein at least one of the one or more access iterations includes accessing multiple cache lines in different banks at the same time.