DMA Module for Virtual Machine Control Block Transfer
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Existing network and storage systems face challenges in efficiently managing and transferring control blocks between virtual machines sharing limited hardware resources, particularly in ensuring quality of service and optimizing resource allocation.
Innovation Solution
A system and method utilizing a DMA module that transfers control blocks between computing system memory and adapter memory, with dedicated memory locations for each virtual machine, and a quality of service entry to limit the number of control blocks transferred, ensuring efficient resource allocation and management.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Adaptability or versatility
If a shared hardware resource is presented to multiple virtual machines, then hardware resource utilization is improved, but control block transfer efficiency and quality of service deteriorate due to resource contention
Solution Approach 1:
The adapter memory is segmented into multiple queues, with each queue dedicated to a specific virtual machine. This segmentation allows independent control block transfer management for each VM, preventing interference between VMs while maintaining shared hardware resource access. The DMA module operates on these segmented queues to transfer control blocks efficiently without resource contention affecting transfer performance.
Solution Approach 2:
The DMA module serves as an intermediary between the computing system memory and adapter memory for control block transfers. It manages the transfer process by reading control blocks from computing system memory, writing them to appropriate adapter memory queues, and tracking transfer status. This intermediary function enables efficient resource allocation and maintains quality of service by controlling the transfer pace and priority.
2Reliability
If dedicated memory locations are allocated for each virtual machine, then quality of service and resource allocation control are improved, but memory management complexity increases
Solution Approach 1:
Multiple virtual machine memory locations are merged into a single adapter memory structure organized as queues. Instead of managing separate physical memory regions for each VM, the system uses a unified memory space with queue-based organization. This merging simplifies memory management while maintaining dedicated access paths for each VM through the queue structure, reducing the complexity of tracking and allocating memory resources.
Solution Approach 2:
Each virtual machine is assigned a specific queue in the adapter memory, providing local quality of service guarantees. The DMA module maintains context information for each VM including its associated queue location and quality of service parameters. This approach provides dedicated memory access paths for each VM while using a unified memory management structure, balancing reliability with manageable complexity.
3Adaptability or versatility
If quality of service entries are implemented to limit control block transfers, then resource allocation fairness is improved, but transfer speed and productivity deteriorate
Solution Approach 1:
The DMA module implements periodic action by transferring control blocks in controlled cycles rather than continuously. Quality of service entries specify maximum transfer limits per period, and the DMA module respects these limits by pausing or throttling transfers when thresholds are approached. This periodic control ensures fair resource allocation across multiple VMs while maintaining high transfer rates during acceptable periods, balancing fairness with productivity.
Data Source
AI summary
A system comprising a plurality of virtual machines executed by a computing system; and an adapter; wherein the adapter includes a direct memory access (DMA) module for transferring control blocks to and from a computing system memory to an adapter memory, where the computing system memory has dedicated memory locations for each virtual machine to place the control blocks and the adapter memory has dedicated memory locations for storing the control blocks generated by each of the plurality of virtual machines.


