PCI Memory Address Space Allocation for Virtualized Isolation

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Current methods for allocating system memory address space to PCI devices in virtualized environments fail to provide reliable isolation between memory address spaces, leading to performance issues and potential security risks due to shared memory pages.

Innovation Solution

A method that sorts small-size Base Address Registers (BARs) in descending order by alignment, calculates the required memory address space, and allocates individual pages with virtual resources to prevent sharing, ensuring each device has isolated memory allocation.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If memory address space is allocated to PCI devices in virtualized environments using traditional methods, then memory allocation is simple and fast, but memory isolation between devices is not reliable leading to security risks and performance issues

Engineering Contradiction:
Improvememory isolationVSAvoidallocation complexity
Core Design Contradiction:
ReliabilityVSDevice complexity

Solution Approach 1:

The patent segments the memory address space allocation process into distinct phases: identifying small-size BARs, sorting them by alignment, calculating remainders, and allocating virtual resources. This segmentation transforms a complex monolithic allocation problem into manageable discrete steps, achieving reliable memory isolation while maintaining reasonable complexity through structured processing

Inventive Principle:
Principle #1Segmentation

2Reliability

If traditional memory allocation methods are used for PCI devices, then allocation process is straightforward, but memory pages are shared between devices causing performance degradation and security vulnerabilities

Engineering Contradiction:
ImprovesecurityVSAvoidallocation efficiency
Core Design Contradiction:
ReliabilityVSProductivity

Solution Approach 1:

The patent performs preliminary actions by identifying and sorting small-size BARs before allocation, calculating their remainders, and pre-determining virtual resource requirements. This preliminary processing ensures secure memory isolation is built into the allocation structure from the start, preventing shared page issues while maintaining efficiency through advance preparation

Inventive Principle:
Principle #10Preliminary action

3Reliability

If small-size BARs are not sorted and processed specifically, then allocation is faster, but memory isolation cannot be guaranteed and devices may share memory pages

Engineering Contradiction:
Improvememory isolationVSAvoidprocessing steps
Core Design Contradiction:
ReliabilityVSDevice complexity

Solution Approach 1:

The patent applies local quality by treating small-size BARs differently from other memory regions through specific sorting by alignment and remainder calculation. This localized special processing ensures memory isolation where needed (for small BARs) while maintaining simpler allocation for other regions, achieving reliable isolation with targeted complexity only where required

Inventive Principle:
Principle #3Local quality

Data Source

PatentUS10579556B2Allocating address space
Publication Date: 2020.03.03 INTERNATIONAL BUSINESS MACHINE CORPORATION
  • US10579556B2 patent drawing
  • US10579556B2 patent drawing
  • US10579556B2 patent drawing

AI summary

A method, computer program product, and system includes a processing circuit(s) allocating a page of system memory address space to a device. The allocating includes the processing circuits(s) obtaining base address registers of the device in a bus and determining a portion of the page of the system memory address space to allocate to the base address registers. The processing circuits(s) sorts the base address registers, in a descending order, according to their alignments and adds sizes of the sorted base address registers to determine the portion of the page. The processing circuit(s) determines a remainder of the page: a difference between a size of the page and the portion of the page. The processing circuit(s) requests a virtual resource of a size equal to the remainder and allocates the page to the sorted base address registers and to the virtual resource.