I/O Virtualization Logic for PCIe Device Aggregation

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing hardware abstraction layers for PCIe devices increase complexity and potential for bugs, and result in loss of source information, impacting features like address translation services and security due to reliance on requester ID replacement.

Innovation Solution

Implementing an intermediary logic that represents physical I/O devices as virtual devices, allowing selective exposure to enable native driver operation while preserving source information and simplifying hardware complexity.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Adaptability or versatility

If hardware abstraction layers are used to represent physical I/O devices, then device aggregation and virtualization are enabled, but hardware complexity increases and potential for bugs increases

Engineering Contradiction:
Improvedevice aggregation capabilityVSAvoidhardware complexity
Core Design Contradiction:
Adaptability or versatilityVSDevice complexity

Solution Approach 1:

The patent implements an intermediary layer (I/O virtualization logic) between the physical I/O devices and the system fabric. This intermediary represents multiple physical devices as virtual devices while maintaining the ability to selectively expose information about the physical devices. The intermediary handles requests to physical devices and can provide virtual device identifiers to software, enabling device aggregation without requiring complex hardware abstraction layers throughout the entire system.

Inventive Principle:
Principle #24Intermediary (Mediator)

2Adaptability or versatility

If requester ID replacement is used in hardware abstraction layers, then device virtualization is achieved, but source information is lost impacting address translation services and security

Engineering Contradiction:
Improvedevice virtualizationVSAvoidsource information loss
Core Design Contradiction:
Adaptability or versatilityVSLoss of information

Solution Approach 1:

The patent applies local quality by making the information exposure selective rather than uniform. The I/O virtualization logic can provide virtual device identifiers to software in certain contexts while preserving and exposing physical device identifiers in other contexts. This selective exposure allows the system to maintain source information integrity for security and address translation services while still achieving device virtualization where needed.

Inventive Principle:
Principle #3Local quality

Solution Approach 2:

The system dynamically adjusts information exposure based on context and requirements. The I/O virtualization logic can switch between providing virtual device identifiers and physical device identifiers depending on the specific operation, software requirements, and security considerations. This dynamic approach allows the system to optimize for both virtualization and source information preservation as needed.

Inventive Principle:
Principle #15Dynamics

Data Source

PatentUS20230077239A1Device virtualization techniques
Publication Date: 2023.03.09 INTEL CORP
  • US20230077239A1 patent drawing
  • US20230077239A1 patent drawing
  • US20230077239A1 patent drawing

AI summary

Device virtualization techniques can enable physical I/O devices (such as PCIe devices or other I/O devices) to appear as virtual I/O devices, while also enabling selective exposure of information regarding the physical I/O devices to enable the native drivers of the physical I/O devices to be run. In one example, one or more physical I/O devices associated with a virtual I/O device are locked, and an interface is monitored for requests to those physical I/O devices. The device can be unlocked in response to a request to a predetermined address. When a physical I/O device is locked, read requests to read an identifier of the physical device are blocked, and a value associated with the virtual I/O device is provided. When the physical I/O device is unlocked, read requests to read an identifier of the physical I/O device are forwarded to the physical I/O device.