Virtualized I/O Resource Discovery Table for Shared Hardware Protection
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Existing I/O virtualization technologies face challenges in protecting and managing shared hardware resources among multiple processing elements, as processes must ensure data protection and maintain the perception of sole resource usage while allowing flexible access modes for diagnostic and development purposes.
Innovation Solution
A virtualized I/O device system that includes programmed I/O configuration registers and a resource discovery table, where a system processor allocates and manages hardware resources among physical and virtual functions, using encoded values to indicate allocation and sharing status, and a device driver discovers and accesses allocated resources through a resource discovery table.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Productivity
If hardware resources are shared among multiple processing elements through I/O virtualization, then hardware resource utilization is improved, but data protection and access control become problematic
Solution Approach 1:
The patent segments hardware resources into individually addressable units and creates separate resource discovery table entries for each resource. This segmentation allows the system to track and control access to each resource independently while maintaining overall sharing capabilities, thus resolving the contradiction between resource utilization and data protection.
Solution Approach 2:
The patent introduces resource discovery tables as an intermediary mechanism between processing elements and hardware resources. These tables store encoded allocation information and serve as a mediator that enables secure resource sharing by verifying access permissions before granting access to shared hardware resources.
2Adaptability or versatility
If processes are allowed to access shared hardware resources, then resource flexibility is improved, but unauthorized access and resource conflicts increase
Solution Approach 1:
The patent implements preliminary action by pre-populating resource discovery tables with encoded allocation information before resource access occurs. The system determines and records resource allocation status in advance, allowing processing elements to check permissions before attempting access, thus preventing unauthorized access while maintaining flexible resource sharing.
Solution Approach 2:
The patent employs feedback mechanisms where processing elements query the resource discovery tables to receive information about resource allocation status and sharing permissions. This feedback loop enables processes to adapt their access behavior based on current allocation states, ensuring flexible yet controlled access to shared hardware resources.
3Measurement precision
If resource allocation information is tracked for each function, then access control precision is improved, but system complexity increases
Solution Approach 1:
The patent merges the resource tracking functionality into existing I/O virtualization infrastructure by integrating resource discovery tables with function allocation mechanisms. This consolidation allows precise tracking of resource allocation for each function while avoiding the complexity of separate tracking systems, thus resolving the contradiction between access control precision and system complexity.
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 programmed I/O (PIO) configuration registers corresponding to hardware resources, and a storage for storing a resource table that includes a plurality of entries. Each entry corresponds to a respective hardware resource. A system processor may allocate the hardware resources to functions that may include physical and virtual functions, and may program each entry of the resource discovery table for each function with an encoded value that indicates whether a requested hardware resource has been allocated to a requesting process, and whether the requested hardware resource is shared with another function. 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.


