Near-Memory Processing Command Arbitration for Interference Prevention

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing Processing In Memory (PIM) techniques face challenges in synchronizing PIM commands from multiple processor threads to prevent data overwrite in near-memory processing elements, leading to errors.

Innovation Solution

A memory controller manages PIM commands by issuing them on a processor thread-by-processor thread basis, using thread identification information and last command information to defer PIM commands from other threads until the previous thread's commands are completed, thus preventing interference.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If multiple processor threads issue PIM commands to the same PIM-enabled memory simultaneously, then throughput and resource utilization are improved, but data overwrite errors occur in near-memory processing elements

Engineering Contradiction:
ImprovethroughputVSAvoiddata correctness
Core Design Contradiction:
ProductivityVSReliability

Solution Approach 1:

The patent introduces a memory controller as an intermediary between processor threads and PIM-enabled memory. The memory controller includes a command queue and arbitration logic that receives PIM commands from multiple threads, queues them, and issues them in an order that prevents data overwrite errors in near-memory processing elements, thus maintaining both high throughput and data correctness

Inventive Principle:
Principle #24Intermediary (Mediator)

Solution Approach 2:

The patent implements preliminary ordering and queuing of PIM commands in the memory controller before they are issued to the PIM-enabled memory. By pre-organizing commands in the command queue based on thread ownership and memory element associations, the system prevents potential data overwrite errors before they can occur, ensuring data correctness while maintaining throughput

Inventive Principle:
Principle #10Preliminary action

2Reliability

If processor threads synchronize to prevent data overwrite in near-memory processing elements, then data correctness is maintained, but system complexity increases due to address-to-memory element mapping requirements

Engineering Contradiction:
Improvedata correctnessVSAvoidsynchronization complexity
Core Design Contradiction:
ReliabilityVSDevice complexity

Solution Approach 1:

The memory controller acts as an intermediary that handles all synchronization logic internally through its command queue and arbitration mechanisms. Processor threads simply issue commands without needing to implement complex synchronization protocols or be aware of address-to-memory element mappings, thus maintaining data correctness while keeping the threads simple

Inventive Principle:
Principle #24Intermediary (Mediator)

Solution Approach 2:

The memory controller's arbitration logic automatically manages command ordering and thread coordination without requiring external synchronization from processor threads. The system self-regulates to prevent data overwrite errors through internal queue management and command issuance control, eliminating the need for complex thread-level synchronization

Inventive Principle:
Principle #25Self-service

3Reliability

If near-memory processing registers are statically assigned to processor threads, then data overwrite errors are prevented, but register utilization efficiency decreases during times when not all threads are active

Engineering Contradiction:
Improvedata correctnessVSAvoidresource utilization efficiency
Core Design Contradiction:
ReliabilityVSLoss of energy

Solution Approach 1:

The patent implements dynamic register allocation where near-memory processing registers are not permanently bound to specific threads but are allocated based on which thread currently has pending commands. The memory controller's arbitration logic dynamically assigns registers to active threads, allowing the same register to be reused by different threads at different times, thus preventing data overwrite errors while maximizing register utilization efficiency

Inventive Principle:
Principle #15Dynamics

Solution Approach 2:

Near-memory processing registers are designed to be universal resources that can serve multiple processor threads rather than being dedicated to single threads. The memory controller manages this shared access by queuing and ordering commands, allowing any thread to use any register when needed, thus improving resource utilization while maintaining data correctness through controlled access

Inventive Principle:
Principle #6Universality (Multi-functionality)

Data Source

PatentUS12333307B2Approach for managing near-memory processing commands from multiple processor threads to prevent interference at near-memory processing elements
Publication Date: 2025.06.17 ADVANCED MICRO DEVICES INC
  • US12333307B2 patent drawing
  • US12333307B2 patent drawing
  • US12333307B2 patent drawing

AI summary

An approach is provided for managing near-memory processing commands (“PIM commands”) from multiple processor threads in a manner to prevent interference and maintain correctness at near-memory processing elements. A memory controller uses thread identification information and last command information to issue a PIM command sequence from a first processor thread, directed to a PIM-enabled memory element, while deferring the issuance of PIM command sequences from other processor threads, directed to the same PIM-enabled memory element. After the last PIM command in the PIM command sequence for the first processor thread has been issued, a PIM command sequence for another processor thread is issued, and so on. The approach allows multiple processor threads to concurrently issue fine grained PIM commands to the same PIM-enabled memory element without having to be aware of address-to-memory element mapping, and without having to coordinate with other threads.