Virtualized I/O Resource Discovery Table for Isolation
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Existing computer systems face challenges in efficiently sharing and protecting I/O hardware resources among multiple processes, where each process must have isolated access to its allocated resources without knowledge of sharing with others, while ensuring data protection and efficient resource utilization.
Innovation Solution
A virtualized I/O device system that includes a storage for a resource discovery table, programmed I/O configuration registers, and a service processor to allocate and manage hardware resources, allowing each process to discover and access its allocated resources through a common device driver, while preventing access to other processes' resources.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Productivity
If I/O hardware resources are shared among multiple processes to increase utilization, then resource utilization efficiency is improved, but data protection and access isolation between processes become more difficult to ensure
Solution Approach 1:
The patent segments the shared I/O device into multiple virtualized functions, with each function allocated to a specific process. The resource discovery table is segmented into separate entries for each function, allowing isolated resource allocation and discovery while maintaining physical sharing of the underlying hardware resources.
Solution Approach 2:
The patent introduces a resource discovery table as an intermediary data structure that mediates between the shared I/O device and multiple processes. This table stores resource allocation information for each virtualized function and enables the device driver to discover allocated resources through controlled read access, ensuring isolation without requiring separate physical hardware for each process.
2Reliability
If separate physical I/O devices are allocated to each process to ensure data protection, then data protection and access isolation are improved, but hardware resource utilization efficiency deteriorates
Solution Approach 1:
The patent merges multiple virtualized functions into a single shared physical I/O device. By combining multiple functions that can be independently allocated to different processes into one physical device, the system achieves both data protection (through virtualization isolation) and efficient resource utilization (through physical sharing).
Solution Approach 2:
The patent makes the single I/O device universal by enabling it to serve multiple processes simultaneously through virtualization. The device can perform multiple functions for different processes at the same time, with each process seeing only its allocated resources, thus achieving multi-functionality without requiring multiple separate physical devices.
3Ease of operation
If a resource discovery table is implemented to enable process discovery of allocated resources, then resource discovery capability is improved, but device complexity increases
Solution Approach 1:
The patent creates a logical copy of resource allocation information in the resource discovery table, which mirrors the actual resource allocation without duplicating the physical hardware complexity. The device driver discovers resources by reading this table rather than directly probing complex hardware configurations, simplifying the discovery process while maintaining accurate resource information.
Data Source
AI summary
A system includes a virtualized I/O device coupled to one or more processing units. The virtualized I/O device includes a storage for storing a resource discovery table, and programmed I/O (PIO) configuration registers corresponding to hardware resources. A system processor may allocate the plurality of hardware resources to one or more functions, and to populate each entry of the resource discovery table for each function. The processing units may execute one or more processes. Given processing units may further execute OS instructions to allocate space for an I/O mapping of a PIO configuration space in a system memory, and to assign a function to a respective process. Processing units may execute a device driver instance associated with a given process to discover allocated resources by requesting access to the resource discovery table. The virtualized I/O device protects the resources by checking access requests against the resource discovery table.


