Memory Task Scheduling via Priority Queues
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
The existing memory systems, particularly NAND flash memory systems, face inefficiencies due to the need for tasks like wear leveling, garbage collection, and metadata management, which can lead to reduced throughput and performance as tasks must wait for completion before being executed, affecting overall system efficiency.
Innovation Solution
A method and memory system that classify tasks into types, create task queues for each type, assign priorities, and convert tasks into commands for execution queues based on priority, allowing for optimized task execution order to improve efficiency.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Productivity
If tasks are executed in sequential order without priority scheduling, then task execution simplicity is maintained, but system throughput and efficiency deteriorate
Solution Approach 1:
The patent segments tasks into different types (user data access, metadata management, wear leveling control, garbage collection) and creates separate task queues for each type. This segmentation allows parallel processing of different task types while maintaining organized management, thereby improving throughput without excessive complexity.
Solution Approach 2:
The patent introduces an arbitration unit as an intermediary between task queues and the physical driver. This arbitration unit manages task scheduling, priority assignment, and coordination, acting as a mediator that handles the complexity of priority-based scheduling while keeping the overall system structure manageable.
2Loss of time
If high-priority tasks are always executed first, then critical task response time is improved, but low-priority task execution is delayed
Solution Approach 1:
The arbitration unit periodically checks task queues and dynamically adjusts task execution based on current system state and queue conditions. This periodic review mechanism ensures that high-priority tasks are executed promptly when needed, while also providing opportunities to execute lower-priority tasks when system resources are available, balancing response time with overall completion rate.
3Ease of operation
If multiple task queues are created for different task types, then task organization and management are improved, but system complexity increases
Solution Approach 1:
The arbitration unit is designed as a universal manager that handles multiple task types and queues through a unified interface and standardized processes. This multi-functional design allows the same arbitration logic to manage different task queues, improving task management ease while avoiding the need for separate complex management mechanisms for each queue type.
Data Source
AI summary
A method of scheduling a plurality of tasks for a plurality of memories in a memory system is disclosed. The method includes classifying each task among the plurality of tasks to a task type among a plurality of task types, disposing a plurality of task queues according to the plurality of task types wherein each task queue stores tasks to be executed within the plurality of tasks, assigning a priority for each task type among the plurality of task types, disposing at least one execution queue; and converting a first task stored in a first task queue among the plurality of task queues into at least one command to be stored in a first execution queue among the at least one execution queue, wherein the at least one command is executed according to the priority of a first task type corresponding to the first task queue.


