Memory Traffic Prioritization for Multi-Process Workloads

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Microservices within an application can have varying memory usage characteristics, leading to inefficiencies in memory management and increased latency when accessing remote fabric-attached memory (FAM) resources.

Innovation Solution

A system and method for prioritizing memory traffic in a memory-semantic fabric by identifying source processes for memory requests and allocating cycles using a weighted round-robin scheme based on memory priorities, which are determined by observing memory request rates or wait times.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If memory requests from multiple microservices are handled with equal priority, then fairness is maintained, but latency increases for memory-intensive applications

Engineering Contradiction:
Improvefairness in memory request handlingVSAvoidlatency for memory-intensive applications
Core Design Contradiction:
ReliabilityVSLoss of time

Solution Approach 1:

The patent applies local quality by assigning different priority levels to different microservices based on their individual memory usage characteristics. The controller identifies source processes and allocates memory bandwidth differently to each process, allowing memory-intensive processes to receive higher priority while less intensive processes receive standard priority, thus resolving the contradiction between fairness and latency.

Inventive Principle:
Principle #3Local quality

2Device complexity

If memory bandwidth is allocated uniformly across all processes, then resource distribution is simple, but performance of memory-intensive applications deteriorates

Engineering Contradiction:
Improvesimplicity of memory bandwidth allocationVSAvoidperformance of memory-intensive applications
Core Design Contradiction:
Device complexityVSProductivity

Solution Approach 1:

The patent implements dynamic memory bandwidth allocation where the controller continuously monitors memory usage characteristics of different microservices and adjusts priority levels accordingly. This dynamic approach allows the system to optimize performance for memory-intensive applications when they are active while maintaining simple uniform allocation when such applications are not present, resolving the contradiction between allocation simplicity and application performance.

Inventive Principle:
Principle #15Dynamics

3Productivity

If granular prioritization of memory requests is implemented, then performance of memory-intensive applications improves, but system complexity increases

Engineering Contradiction:
Improveperformance of memory-intensive applicationsVSAvoidcomplexity of memory traffic management
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The patent introduces a controller as an intermediary component that manages memory traffic prioritization. This controller sits between the microservices and the fabric-attached memory, intelligently identifying source processes and allocating bandwidth based on their needs. By centralizing the complexity in this intermediary component, the system achieves granular prioritization and improved performance while keeping the complexity localized rather than distributed throughout the entire system.

Inventive Principle:
Principle #24Intermediary (Mediator)

Data Source

PatentUS12271588B1Prioritization of memory traffic for multi-process workloads
Publication Date: 2025.04.08 ADVANCED MICRO DEVICES INC
  • US12271588B1 patent drawing
  • US12271588B1 patent drawing
  • US12271588B1 patent drawing

AI summary

The disclosed device includes a memory-semantic fabric comprising memory components accessible by multiple processors and a controller for the memory-semantic fabric. The controller receives, from multiple processes, memory requests for a memory-semantic fabric. The controller also identifies, within the processes, a source process for each of the memory requests and prioritizes forwarding the memory requests to the memory-semantic fabric based on the source processes. Various other methods, systems, and computer-readable media are also disclosed.