PIM Memory Data Swizzling for Cross-Portion Processing
Find Innovative SolutionsGenerate 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
Engineering 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
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.
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
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.
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
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.
Data Source
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.


