VM Command Fetch Arbitration Using Dual Credits for Bandwidth Fairness
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Existing systems face challenges in managing command fetching arbitration from virtual machines, leading to unfair allocation of hardware resources and command bandwidth, resulting in suboptimal performance.
Innovation Solution
The implementation of arbitration circuitry and command fetch circuitry in devices like SSDs to determine credits values for each virtual machine, allowing fair selection and efficient fetching of commands based on processing resources and bandwidth needs.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Reliability
If traditional arbitration methods are used to fetch commands from virtual machines, then hardware resource allocation is simple, but command bandwidth fairness between virtual machines deteriorates
Solution Approach 1:
The patent implements a credit-based feedback mechanism where the arbitration circuitry continuously monitors command completion status and updates credit values for each virtual machine. When commands are completed, credits are refunded to the corresponding virtual machine, creating a dynamic feedback loop that ensures fair bandwidth allocation. This feedback system allows the arbitration mechanism to adapt to varying workload demands while maintaining fairness, resolving the contradiction between fairness and complexity.
Solution Approach 2:
The patent changes the arbitration parameter from simple round-robin or priority-based selection to credit-value-based selection. The credit value serves as a dynamic parameter that reflects the actual bandwidth consumption and completion status of each virtual machine. By using this parameter change, the system achieves fair command bandwidth allocation while the credit management logic keeps the overall mechanism complexity manageable.
2Reliability
If credits-based arbitration is implemented to ensure fair command bandwidth allocation, then command bandwidth fairness improves, but hardware resource requirements increase
Solution Approach 1:
The patent segments the arbitration mechanism into distinct functional components: credit calculation circuitry, credit storage registers, and arbitration selection logic. This segmentation allows each component to be implemented efficiently using dedicated hardware resources rather than requiring a monolithic complex structure. The credit values for multiple virtual machines are stored in separate registers, enabling parallel tracking with minimal additional hardware overhead.
Solution Approach 2:
The patent uses simplified credit register structures that can be replicated for each virtual machine rather than implementing complex per-vm data structures. The arbitration circuitry copies the same credit management logic across multiple virtual machines, allowing scalable hardware implementation. This copying approach enables fair bandwidth allocation across many virtual machines without linearly increasing hardware resource requirements.
3Productivity
If multiple credits values are tracked for each virtual machine, then command fetching fairness improves, but processing complexity increases
Solution Approach 1:
The patent merges the tracking of multiple credits values into a unified credit register structure where each virtual machine has an associated credit counter. The arbitration circuitry combines the credit values of all virtual machines to determine the next virtual machine to service, using a single integrated arbitration logic unit. This merging approach reduces processing complexity compared to managing separate arbitration mechanisms for each virtual machine while maintaining fair command fetching efficiency.
Data Source
AI summary
A device and related method, the device communicatively coupled to a host, and the device including arbitration circuitry, command fetch circuitry, and processing circuitry. For each virtual machine of the host, arbitration circuitry determines (a) first credits value indicative of a number of commands that may be fetched and (b) a second credits value indicative of a bandwidth to fetch at least one command, from a queue group associated with the virtual machine. The arbitration circuitry selects a virtual machine based on at least one of the first credits values and the second credits values of the virtual machines, and communicates a signal to command fetch circuitry to fetch at least one command. In response to the reception of the signal, the command fetch circuitry fetches at least one command from the queue group associated with the selected virtual machine and communicates the fetched commands to processing circuitry for execution.


