Memory Controller Resource Allocation for Fair Multi-User Access
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Existing storage devices face challenges in ensuring fairness and performance when accessed by multiple users, particularly when a malicious user causes a large workload, leading to degraded overall performance.
Innovation Solution
A memory controller that allocates resources independently to multiple users based on a set ratio, using independent and shared resource types, and performs fetch operations in a time-division manner to ensure fair access and maintain performance.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Adaptability or versatility
If multiple users access the storage device without resource allocation, then the storage device can be accessed by all users, but the overall performance degrades when a malicious user causes large workload
Solution Approach 1:
The patent segments storage resources into multiple queues, each associated with a specific user. The memory controller divides the workload by user and assigns dedicated queues for command processing, ensuring that one user's heavy workload does not impact other users' access performance. This segmentation resolves the contradiction by enabling multi-user access while maintaining performance isolation.
Solution Approach 2:
The patent implements local quality by assigning different service levels and resource allocations to different users based on their individual needs and workload characteristics. Each user receives customized resource allocation rather than uniform treatment, allowing the system to optimize performance for each user while maintaining overall system functionality.
2Reliability
If resource allocation ratio is set for multiple users, then fairness among users is improved, but the complexity of resource management increases
Solution Approach 1:
The patent implements self-service by enabling users to autonomously manage their own resource allocation. Each user can define their own service level and resource requirements, and the system automatically enforces these allocations without requiring complex centralized management. This reduces the operational complexity of managing fairness while maintaining reliable resource distribution.
Solution Approach 2:
The patent uses parameter changes by dynamically adjusting resource allocation ratios and service level parameters based on user needs and system conditions. The memory controller modifies queue depths, service levels, and resource distribution parameters in response to changing workloads, enabling flexible fairness management without fixed complex configurations.
3Reliability
If independent resource allocation is performed for each user, then user performance is secured, but the total resource utilization efficiency decreases
Solution Approach 1:
The patent merges resource allocation by allowing multiple users to share common resource pools while maintaining logical separation through dedicated queues. The system combines the benefits of isolation (performance guarantee) and sharing (resource efficiency) by enabling users to access shared storage resources through their respective queues, preventing resource waste while ensuring performance commitments.
Solution Approach 2:
The patent implements dynamics by making resource allocation flexible and adaptive rather than static. The system dynamically adjusts queue depths, service levels, and resource distribution based on real-time workload conditions, allowing efficient resource utilization while maintaining performance guarantees. Resource allocation parameters change dynamically to balance between isolation and sharing.
Data Source
AI summary
A memory controller includes processing circuitry configured to, set a resource allocation ratio for multiple users, allocate a plurality of resources to the multiple users based on the resource allocation ratio, the plurality of resources being used by the multiple users to access a memory device, the plurality of resources including at least one independent resource type resource and at least one shared resource type resource, the allocating the plurality of resources including independently allocating the at least one independent resource type resource to the multiple users based on the resource allocation ratio and allocating the at least one shared resource type resource to the multiple users in a time-division manner based on the resource allocation ratio, and perform a fetch operation on memory commands associated with the multiple users based on the allocated plurality of resources to the multiple users, the memory commands being generated by the multiple users.


