PIM Memory Data Swizzling for Cross-Portion Processing

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing electronic devices with processor-in-memory (PIM) functional blocks are limited to accessing data within their respective memory portions, making them inefficient for tasks requiring irregular memory accesses, particularly in applications like graph processing and machine learning.

Innovation Solution

Implementing a swizzle scratch pad and PIM instructions (PIM_SwizzledWrite, PIM_SwizzledRead, PIM_SSPWrite, PIM_SSPRead) to copy data between memory portions, allowing PIM functional blocks to access data from other parts of the memory through an intermediary, and using portion-masking elements to control PIM operations.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If separate PIMs are used for each memory portion, then PIM operations can be performed efficiently for data in the associated memory circuitry, but the PIMs are limited to accessing data only in their respective portion

Engineering Contradiction:
ImprovePIM operation efficiencyVSAvoiddata access range
Core Design Contradiction:
ProductivityVSAdaptability or versatility

Solution Approach 1:

A swizzle scratch pad is introduced as an intermediary data storage structure that enables PIM functional blocks to access data from memory portions other than their native portion. The swizzle scratch pad acts as a buffer that receives data from source memory portions and makes it available to target PIM functional blocks, thereby extending the data access range without compromising the efficiency of local PIM operations.

Inventive Principle:
Principle #24Intermediary (Mediator)

2Device complexity

If PIMs are restricted to their respective memory portions, then complexity is reduced and power consumption is minimized, but usefulness for irregular memory accesses between portions is limited

Engineering Contradiction:
ImprovePIM system complexityVSAvoidirregular memory access capability
Core Design Contradiction:
Device complexityVSAdaptability or versatility

Solution Approach 1:

The swizzle scratch pad serves as a mediator that enables irregular memory accesses between portions while maintaining the simple architecture of separate PIMs. By using the swizzle scratch pad as an intermediate storage, the system achieves versatility for irregular access patterns without increasing the complexity of the PIM functional blocks themselves or requiring them to directly access foreign memory portions.

Inventive Principle:
Principle #24Intermediary (Mediator)

3Adaptability or versatility

If data is transferred between memory portions for PIM operations, then more data can be processed, but complexity, time, and electrical power consumption increase

Engineering Contradiction:
Improvecross-portion data processingVSAvoidpower consumption
Core Design Contradiction:
Adaptability or versatilityVSUse of energy by stationary object

Solution Approach 1:

The memory system is segmented into separate portions, each with its own PIM functional block, allowing data to remain in place while enabling cross-portion processing through the swizzle scratch pad. This segmentation avoids the need for full data transfers between portions, reducing power consumption while maintaining the capability to process data from multiple portions in PIM operations.

Inventive Principle:
Principle #1Segmentation

Data Source

PatentUS12387766B2Providing data from portions of a memory to processors in memory (PIMs) in an electronic device
Publication Date: 2025.08.12 ADVANCED MICRO DEVICES INC
  • US12387766B2 patent drawing
  • US12387766B2 patent drawing
  • US12387766B2 patent drawing

AI summary

A memory includes at least two portions of memory circuitry, a first processor in memory (PIM) functional block, and a second PIM functional block, each PIM functional block being associated with a respective different portion of the memory circuitry. In operation, the first PIM functional block copies data from a source location in a first portion of memory accessible to the first PIM functional block. The first PIM functional block then provides the data to the second PIM functional block. The second PIM functional block acquires and stores the data in a destination location in a second portion of memory accessible to the second PIM functional block. The second PIM functional block next performs one or more PIM operations using the data.