I/O Virtualization Logic for PCIe Device Aggregation
Find Innovative SolutionsGenerate 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
Engineering 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
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.
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
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.
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.
Data Source
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.


