PIM Register Reuse via Constant-Value Cache

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

In computing systems, the frequent need to copy constant values from dynamic random-access memory (DRAM) to processing-in-memory (PIM) devices consumes bandwidth and energy, as these values are often reused in computations, leading to inefficient memory operations.

Innovation Solution

Implementing a control unit with a constant-value cache in the memory controller that tracks frequently used values and reuses them across computations by avoiding explicit copy commands, thereby reducing memory bandwidth utilization and power consumption.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If constant values are copied from DRAM to PIM devices for each computation, then computational accuracy is maintained, but memory bandwidth utilization decreases and energy consumption increases

Engineering Contradiction:
Improvecomputational efficiencyVSAvoidenergy consumption
Core Design Contradiction:
ProductivityVSLoss of energy

Solution Approach 1:

The memory controller pre-loads constant values into PIM registers before computation operations are executed. By performing the loading action in advance and reusing the values in registers during multiple computations, the system avoids repeated DRAM-to-PIM transfers, thereby reducing energy consumption while maintaining computational accuracy

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

PIM registers serve as an intermediary storage between DRAM and the computation units. Instead of directly copying constant values from DRAM to computation units for each operation, the system uses PIM registers as a buffer that can hold and reuse these values locally, reducing the frequency of memory access operations and associated energy costs

Inventive Principle:
Principle #24Intermediary (Mediator)

2Productivity

If constant values are copied from DRAM to PIM devices for each computation, then data freshness is ensured, but memory bandwidth utilization decreases

Engineering Contradiction:
Improvememory operation speedVSAvoidmemory bandwidth utilization
Core Design Contradiction:
ProductivityVSQuantity of substance

Solution Approach 1:

The memory controller pre-loads constant values into PIM registers before computation operations are executed. By performing the loading action in advance and reusing the values in registers during multiple computations, the system avoids repeated DRAM-to-PIM transfers, thereby reducing memory bandwidth consumption while maintaining computational accuracy

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

PIM registers serve as an intermediary storage between DRAM and the computation units. Instead of directly copying constant values from DRAM to computation units for each operation, the system uses PIM registers as a buffer that can hold and reuse these values locally, reducing the frequency of memory access operations and associated bandwidth usage

Inventive Principle:
Principle #24Intermediary (Mediator)

Data Source

PatentUS12175073B2Reusing remote registers in processing in memory
Publication Date: 2024.12.24 ADVANCED MICRO DEVICES INC
  • US12175073B2 patent drawing
  • US12175073B2 patent drawing
  • US12175073B2 patent drawing

AI summary

Systems, apparatuses, and methods for reusing remote registers in processing in memory (PIM) are disclosed. A system includes at least a host processor, a memory controller, and a PIM device. When the memory controller receives, from the host processor, an operation targeting the PIM device, the memory controller determines whether an optimization can be applied to the operation. The memory controller converts the operation into N PIM commands if the optimization is not applicable. Otherwise, the memory controller converts the operation into a N−1 PIM commands if the optimization is applicable. For example, if the operation involves reusing a constant value, a copy command can be omitted, resulting in memory bandwidth reduction and power consumption savings. In one scenario, the memory controller includes a constant-value cache, and the memory controller performs a lookup of the constant-value cache to determine if the optimization is applicable for a given operation.