Heterogeneous Core Memory Sharing Across Processor Architectures

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Interoperability of memory and computing resources between different processor architectures is difficult, leading to inefficiencies in memory and computing resource utilization.

Innovation Solution

A system for memory sharing and synchronization across disparate hardware engines using a parallel computing platform and application programming interface model, such as CUDA, that allows for the allocation and synchronization of memory across multiple User Mode Drivers (UMDs) and processors, including integrated and discrete GPUs, while adhering to specific allocation constraints and constraints across hardware and software boundaries.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Quantity of substance

If memory is shared across heterogeneous processing cores, then memory usage efficiency is improved, but system complexity increases

Engineering Contradiction:
Improvememory usageVSAvoidsystem complexity
Core Design Contradiction:
Quantity of substanceVSDevice complexity

Solution Approach 1:

The patent introduces a memory management unit (MMU) and translation layer that acts as an intermediary between heterogeneous processing cores and physical memory. This translation layer handles address space translation and memory allocation, allowing different processor architectures to access shared memory without direct complex interactions, thus improving memory efficiency while managing system complexity through abstraction.

Inventive Principle:
Principle #24Intermediary (Mediator)

Solution Approach 2:

The patent implements a universal memory interface and common address space that can be accessed by multiple heterogeneous processing cores simultaneously. This universal memory system provides multi-functional access patterns (read, write, synchronized access) and supports different memory allocation schemes, enabling efficient resource sharing across diverse architectures without requiring architecture-specific memory implementations for each core.

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

2Reliability

If synchronization mechanisms are added for memory sharing, then data consistency is improved, but access speed deteriorates

Engineering Contradiction:
Improvedata consistencyVSAvoidmemory access speed
Core Design Contradiction:
ReliabilityVSSpeed

Solution Approach 1:

The patent implements fine-grained synchronization where only specific memory regions or data elements are synchronized rather than the entire address space. Different synchronization mechanisms (locks, barriers, atomic operations) are applied locally to specific critical sections, allowing non-critical memory accesses to proceed without synchronization overhead, thus maintaining data consistency where needed while preserving access speed where possible.

Inventive Principle:
Principle #3Local quality

Solution Approach 2:

The patent applies synchronization selectively and partially - using lightweight synchronization primitives for frequently accessed data and heavier mechanisms only when absolutely necessary. The system employs optimistic concurrency control where transactions are executed without immediate synchronization checks, and conflicts are resolved only when detected, reducing overall synchronization overhead while maintaining data consistency.

Inventive Principle:
Principle #16Partial or excessive action

Data Source

PatentUS12405823B2Resource sharing by two or more heterogeneous processing cores
Publication Date: 2025.09.02 NVIDIA CORP
  • US12405823B2 patent drawing
  • US12405823B2 patent drawing
  • US12405823B2 patent drawing

AI summary

Apparatus, systems, and techniques to share memory. In at least one embodiment, a processor comprises one or more circuits to allocate memory to at least two heterogeneous processing cores in response to performing one or more instructions associated with one or more application programming interfaces based, at least in part, on one or more attributes associated with the at least two heterogeneous processing cores.