NUMA Memory Allocation via Device Affinity Tables

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

In multiprocessor computer systems with distributed shared memory, existing memory allocation methods do not efficiently direct data transmission between input-output devices and memory resources, leading to suboptimal performance due to non-uniform memory access times.

Innovation Solution

A system and method that utilize a pre-programmed device affinity table to allocate memory to input-output devices based on physical proximity, directing the device driver to transmit data between the I/O device and the closest memory resource, thereby optimizing memory access and improving performance.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Loss of time

If memory is allocated to I/O devices without considering physical proximity in distributed shared memory systems, then memory allocation is simple and uniform, but memory access time increases and I/O performance deteriorates

Engineering Contradiction:
Improvememory access timeVSAvoidmemory allocation complexity
Core Design Contradiction:
Loss of timeVSDevice complexity

Solution Approach 1:

The system pre-establishes an affinity table during system initialization that maps I/O devices to their physically closest memory resources. This preliminary action stores proximity information before actual I/O operations occur, allowing the system to quickly determine optimal memory allocation without real-time complexity. When an I/O device needs memory, the system consults this pre-computed affinity table to immediately identify the closest memory resource, thereby reducing memory access time without adding operational complexity.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The affinity table acts as an intermediary data structure that mediates between I/O devices and memory resources. Instead of directly calculating physical proximity between devices and memory during operations, the system uses this intermediate table to translate device identifiers into optimal memory resource identifiers. This intermediary layer simplifies the allocation process while ensuring that memory is assigned based on physical proximity, thus reducing access time without increasing system complexity.

Inventive Principle:
Principle #24Intermediary (Mediator)

2Productivity

If memory resources are distributed across multiple nodes in a NUMA system, then data transmission capacity increases, but memory access time becomes non-uniform and I/O performance varies

Engineering Contradiction:
Improvedata transmission capacityVSAvoidmemory access time variability
Core Design Contradiction:
ProductivityVSLoss of time

Solution Approach 1:

The system applies local quality by allocating memory resources based on their physical location relative to I/O devices. The affinity table encodes spatial information about which memory resources are locally closest to each I/O device. When allocating memory, the system selects resources with the best local proximity match, ensuring that each I/O device accesses memory from its nearest physical location. This local optimization reduces access time variability across the distributed memory system while maintaining high data transmission capacity.

Inventive Principle:
Principle #3Local quality

3Productivity

If existing memory allocation methods are used in multiprocessor systems, then system simplicity is maintained, but I/O performance and throughput are suboptimal

Engineering Contradiction:
ImproveI/O throughputVSAvoidmemory allocation system complexity
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The system performs preliminary computation during initialization to build the affinity table that maps I/O devices to optimal memory resources. This pre-computation phase establishes proximity relationships once, storing the results for rapid lookup during I/O operations. The device driver queries this pre-built table to determine the closest memory resource, enabling high I/O throughput without adding complexity to the operational allocation process. The complexity is front-loaded during system setup rather than being present during runtime operations.

Inventive Principle:
Principle #10Preliminary action

Data Source

PatentUS7500067B2System and method for allocating memory to input-output devices in a multiprocessor computer system
Publication Date: 2009.03.03 DELL PROD LP
  • US7500067B2 patent drawing
  • US7500067B2 patent drawing
  • US7500067B2 patent drawing

AI summary

The present disclosure describes systems and methods for allocating memory in a multiprocessor computer system such as a non-uniform memory access (NUMA) machine having distribute shared memory. The systems and methods include allocating memory to input-output devices (I/O devices) based at least in part on which memory resource is physically closest to a particular I/O device. Through these systems and methods memory is allocated more efficiently in a NUMA machine. For example, allocating memory to an I/O device that i80s on the same node as a memory resource, reduces memory access time thereby maximizing data transmission. The present disclosure further describes a system and method for improving performance in a multiprocessor computer system by utilizing a pre-programmed device affinity table. The system and method includes listing the memory resources physically closest to each I/O device and accessing the device table to determine the closest memory resource to a particular I/O device. The system and method further includes directing a device driver to transmit data between the I/O device and the closest memory resource.