IOMMU Queue Structure for Peripheral Page Fault Handling

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing systems face challenges in handling page requests from peripheral devices with translation look aside buffers (TLBs) in a flexible and fair manner, particularly due to differences in communication protocols and the need for efficient buffering and notification mechanisms.

Innovation Solution

A method involving the creation of a queue structure in system memory to handle page requests, where the I/O Memory Management Unit (IOMMU) generates queue entries from peripheral device requests, notifies the processor through interrupts, and uses a scalable queue to manage multiple requests without serializing peripherals, thus avoiding hardware resource constraints and complex software management.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If a queue structure is implemented in system memory to handle page requests from peripheral devices, then the system can manage multiple page requests concurrently and flexibly, but it requires additional memory resources and queue management overhead

Engineering Contradiction:
Improveconcurrent page request handling capabilityVSAvoidsystem memory usage
Core Design Contradiction:
ProductivityVSQuantity of substance

Solution Approach 1:

The patent introduces a queue structure as an intermediary data structure in system memory that mediates between peripheral devices issuing page requests and the processor handling them. The queue entries store request information temporarily, allowing the system to buffer and manage multiple requests concurrently without requiring complex hardware modifications or excessive memory allocation.

Inventive Principle:
Principle #24Intermediary (Mediator)

2Ease of operation

If the IOMMU generates queue entries and notifies the processor through interrupts for each page request, then the processing is flexible and responsive, but it increases the frequency of interrupt operations and associated overhead

Engineering Contradiction:
Improvepage request processing flexibilityVSAvoidinterrupt overhead time
Core Design Contradiction:
Ease of operationVSLoss of time

Solution Approach 1:

The IOMMU performs preliminary actions by generating queue entries and notifying the processor via interrupts only when new page requests arrive, rather than continuously monitoring or processing requests in real-time. This event-driven approach allows flexible handling of page requests while minimizing interrupt overhead by triggering notifications only when necessary.

Inventive Principle:
Principle #10Preliminary action

3Adaptability or versatility

If the system uses a scalable queue structure to manage page requests without serializing peripherals, then peripheral devices can operate in parallel, but it requires more complex queue management logic and communication protocols

Engineering Contradiction:
Improveparallel peripheral operation capabilityVSAvoidqueue management complexity
Core Design Contradiction:
Adaptability or versatilityVSDevice complexity

Solution Approach 1:

The patent segments the page request handling process into distinct components: peripheral devices issue requests independently, the IOMMU generates and queues entries in system memory, and the processor handles notifications separately. This segmentation allows multiple peripherals to operate in parallel without serialization while distributing the management complexity across different system components rather than concentrating it in a single device.

Inventive Principle:
Principle #1Segmentation

Data Source

PatentEP2593877B1Mechanism to handle peripheral page faults
Publication Date: 2015.03.18 ADVANCED MICRO DEVICES INC
  • EP2593877B1 patent drawingFigure 1
  • EP2593877B1 patent drawingFigure 2~4
  • EP2593877B1 patent drawingFigure 5

AI summary

A page service request is received from a peripheral device requesting that a memory page be loaded into system memory. Page service request information corresponding to the received page service request is written as a queue entry into a queue structure in system memory. The processor is notified that the page request is present in the queue. The processor may be notified with an interrupt of a new queue entry. The processor processes the page service request and the peripheral device is notified of the completion of the processing of the request.