Shaped Memory Access for Register Bank Conflict Avoidance

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

In parallel processing systems, register bank conflicts prevent processors from retrieving multiple operands in a single register access operation, leading to inefficiencies in memory access operations.

Innovation Solution

A computer-implemented method where an instruction dispatch unit recognizes accessible register files via a specific memory access pattern and forms a shaped memory access operation to retrieve multiple operands without resource conflicts, optimizing operand collection from a register file.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If separate register access operations are performed for each operand to avoid register bank conflicts, then register bank conflicts are avoided, but the number of register access operations increases and memory access efficiency deteriorates

Engineering Contradiction:
Improveregister bank conflict avoidanceVSAvoidmemory access efficiency
Core Design Contradiction:
ReliabilityVSProductivity

Solution Approach 1:

The register file is divided into multiple banks, and the patent segments the operand access operations to access different banks simultaneously. By identifying that operands are stored in different banks (e.g., even and odd banks), the system can perform multiple register access operations in parallel, avoiding serial execution while still avoiding conflicts within each bank.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent introduces a bank dimension to the register access space. Instead of treating all registers as a single resource, it adds a bank identifier dimension, allowing the system to access multiple registers across different banks simultaneously. This transforms a one-dimensional conflict problem into a multi-dimensional parallel access solution.

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

2Reliability

If all operands are accessed serially one at a time, then register bank conflicts are completely avoided, but the total number of register access operations increases, but potential efficiencies are not realized

Engineering Contradiction:
Improveregister bank conflict avoidanceVSAvoidoperand retrieval time
Core Design Contradiction:
ReliabilityVSLoss of time

Solution Approach 1:

The patent performs preliminary analysis of operand addresses to determine which operands are located in different banks before executing access operations. By pre-identifying non-conflicting operands and their bank assignments, the system can parallelize subsequent access operations, reducing total access time while maintaining conflict avoidance.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The patent dynamically determines the number of parallel access operations needed based on the specific operand distribution. Rather than always using maximum parallelism or strict serial execution, it adapts the degree of parallelization to the actual register bank configuration, optimizing both conflict avoidance and access time.

Inventive Principle:
Principle #15Dynamics

Data Source

PatentUS10255228B2System and method for performing shaped memory access operations
Publication Date: 2019.04.09 NVIDIA CORP
  • US10255228B2 patent drawing
  • US10255228B2 patent drawing
  • US10255228B2 patent drawing

AI summary

One embodiment of the present invention sets forth a technique that provides an efficient way to retrieve operands from a register file. Specifically, the instruction dispatch unit receives one or more instructions, each of which includes one or more operands. Collectively, the operands are organized into one or more operand groups from which a shaped access may be formed. The operands are retrieved from the register file and stored in a collector. Once all operands are read and collected in the collector, the instruction dispatch unit transmits the instructions and corresponding operands to functional units within the streaming multiprocessor for execution. One advantage of the present invention is that multiple operands are retrieved from the register file in a single register access operation without resource conflict. Performance in retrieving operands from the register file is improved by forming shaped accesses that efficiently retrieve operands exhibiting recognized memory access patterns.