Stacked Memory PE Dispatch Queues for Barrier-Aware Execution

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing systems in high-performance computing face challenges with latency, efficiency, and accuracy due to the failure to respect command dependencies in stacked memory architectures, leading to delays and incorrect results.

Innovation Solution

Implementing a processing element (PE) architecture with multiple dispatch queues and a dispatcher that assigns identifiers to commands, manages command types, and ensures dependencies are respected by holding commands at the submission queue until dependencies are met, using hardware-assisted processing to manage barrier functions.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Speed

If commands are pushed to dispatch queues without checking dependencies, then processing speed increases, but execution accuracy deteriorates due to incorrect command ordering

Engineering Contradiction:
Improvecommand processing speedVSAvoidcommand execution accuracy
Core Design Contradiction:
SpeedVSManufacturing precision

Solution Approach 1:

The system performs preliminary dependency checking before pushing commands to dispatch queues. The dispatcher checks if required data is available in on-processor memory before allowing a command to be dispatched, preventing incorrect execution ordering from the start rather than correcting it later.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The system implements a feedback mechanism where the dispatcher continuously monitors the completion queue and on-processor memory status. When data becomes available, the dispatcher receives feedback and automatically pushes pending commands with satisfied dependencies to the appropriate dispatch queues, ensuring correct execution order.

Inventive Principle:
Principle #23Feedback

2Manufacturing precision

If barrier commands are implemented with strict dependency checking, then execution accuracy improves, but processing latency increases

Engineering Contradiction:
Improvecommand execution accuracyVSAvoidprocessing latency
Core Design Contradiction:
Manufacturing precisionVSLoss of time

Solution Approach 1:

The system maintains continuous processing by allowing multiple commands to be in flight simultaneously at different stages. While some commands wait for data in the submission queue, others are being executed or have completed, ensuring the pipeline remains full and productive without unnecessary idle time.

Inventive Principle:
Principle #20Continuity of useful action

Solution Approach 2:

The system replaces traditional software-based barrier synchronization with a hardware-assisted mechanism. The completion queue and dependency tracking are implemented in hardware, allowing the dispatcher to efficiently check command completion status and push pending commands without software intervention overhead, reducing latency.

Inventive Principle:
Principle #28Mechanics substitution (Replace mechanical system)

3Productivity

If multiple dispatch queues are used to manage different command types, then processing efficiency improves, but system complexity increases

Engineering Contradiction:
Improvecommand processing efficiencyVSAvoidqueue management complexity
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The dispatcher is designed as a universal component that handles all command types through a unified interface. Despite managing multiple dispatch queues for different command types (DMA, computation, etc.), the dispatcher uses a single dependency-checking mechanism and unified push logic, reducing the perceived complexity while maintaining specialized processing paths.

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

Solution Approach 2:

The system segments commands into different types (DMA, computation, barrier) and routes them to specialized dispatch queues. This segmentation allows each queue to be optimized for its specific command type while the dispatcher manages them uniformly, improving processing efficiency without proportionally increasing complexity.

Inventive Principle:
Principle #1Segmentation

4Manufacturing precision

If commands are held at submission queue waiting for dependencies, then execution accuracy improves, but processing speed decreases

Engineering Contradiction:
Improvecommand execution accuracyVSAvoidcommand processing speed
Core Design Contradiction:
Manufacturing precisionVSSpeed

Solution Approach 1:

The system extracts commands that have satisfied their dependencies from the submission queue and pushes them to the appropriate dispatch queues for execution. This separation allows commands to be held when needed (maintaining accuracy) but quickly moved to execution when ready (maintaining speed), optimizing both aspects dynamically.

Inventive Principle:
Principle #2Taking out (Extraction)

Data Source

PatentEP4722909A2Systems and methods of program execution in a processing element of a stacked memory module
Publication Date: 2026.04.08 SAMSUNG ELECTRONICS CO LTD
  • EP4722909A2 patent drawingFigure 1
  • EP4722909A2 patent drawingFigure 2
  • EP4722909A2 patent drawingFigure 3

AI summary

Provided are systems, methods, and apparatuses of program execution in a processing element, PE. In one or more examples, the systems, devices, and methods include executing software code at a processing element, PE, of a stacked memory module; pushing, via a dispatcher of the PE, a first command of the software code from a submission queue to a first dispatch queue, the PE comprising multiple dispatch queues that include the first dispatch queue; pushing, via the dispatcher, a barrier command of the software code from the submission queue to the first dispatch queue; holding a second command of the software code at the submission queue based on the barrier command; and pushing the second command from the submission queue to the first dispatch queue based on the dispatcher determining that the first dispatch queue is empty.