Unified Host Memory for Coprocessors via Virtualization

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing computing systems face challenges in efficiently coordinating memory access between main processors and coprocessors, especially when multiple coprocessors with different API protocols are involved, leading to unbalanced loading and synchronization issues across distributed systems.

Innovation Solution

Implementing a unified address range and memory synchronization strategy using a virtualization layer that allows for CPU/coprocessor-transparent memory allocations, enabling a common address space across all nodes and robust synchronization mechanisms without requiring modifications to system software or applications.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Ease of operation

If separate memory allocations are performed on client and server for coprocessor access, then memory access transparency is improved, but system complexity and synchronization overhead increase

Engineering Contradiction:
Improvememory access transparencyVSAvoidmemory coordination complexity
Core Design Contradiction:
Ease of operationVSDevice complexity

Solution Approach 1:

The patent merges the address spaces of the host system and coprocessor into a unified address space, allowing both to access the same physical memory regions without separate allocations. This eliminates the need for complex pointer rewriting and synchronization mechanisms while maintaining memory access transparency.

Inventive Principle:
Principle #5Merging (Combining)

Solution Approach 2:

The unified address space serves multiple functions simultaneously: it provides memory access transparency for host applications, enables direct coprocessor access to shared memory, and eliminates the need for separate memory management mechanisms. This multi-functional approach reduces overall system complexity.

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

2Productivity

If multiple coprocessors with different API protocols are integrated into a unified system, then processing capability is improved, but system coordination and memory management complexity increase

Engineering Contradiction:
Improveprocessing capabilityVSAvoidsystem coordination complexity
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The unified address space provides a universal interface that works with multiple coprocessor types having different API protocols. Each coprocessor can access the shared memory space through its own protocol while the underlying memory management remains standardized, enabling heterogeneous coprocessor integration without increasing coordination complexity.

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

3Adaptability or versatility

If distributed coprocessors are deployed across multiple nodes, then processing scalability is improved, but network dependency and synchronization requirements increase

Engineering Contradiction:
Improvesystem scalabilityVSAvoidsynchronization reliability
Core Design Contradiction:
Adaptability or versatilityVSReliability

Solution Approach 1:

The patent merges the memory address spaces across distributed nodes into a unified virtual address space. This allows coprocessors on different nodes to access shared memory regions without requiring explicit network synchronization, as the unified address space abstraction handles the coordination transparently.

Inventive Principle:
Principle #5Merging (Combining)

Data Source

PatentUS11907589B2Unified host memory for coprocessors
Publication Date: 2024.02.20 VMWARE INC
  • US11907589B2 patent drawing
  • US11907589B2 patent drawing
  • US11907589B2 patent drawing

AI summary

At least one application of a client executes via system software on a hardware computing system that includes at least one CPU and at least one coprocessor. A virtualization layer establishes unified memory address space between the client and the hardware computing system, which also includes memory associated with the at least one coprocessor. The virtualization layer then synchronizes memory associated with the client and memory associated the at least one coprocessor. The virtualization layer may be installed and run in a non-privileged, user space, without modification of the application or of the system software running on the hardware computing system.