Memory Controller Task Starvation Prevention via Dynamic Priority
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Memory systems face performance degradation due to task starvation, where normal tasks are delayed and executed after high-priority tasks, leading to inefficiencies and potential system deterioration.
Innovation Solution
A memory system with a controller that stores start time stamps and performs delay checks to identify delayed tasks, assigning them higher priority and queuing them in a priority queue to prevent starvation, ensuring timely execution and maintaining system performance.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Speed
If high-priority tasks are always executed first, then task completion speed is improved, but normal tasks experience starvation and delayed execution
Solution Approach 1:
The controller performs delay checks by comparing current time with start time stamps of normal tasks, and assigns priority dynamically based on this feedback. This feedback mechanism prevents starvation by detecting delayed tasks and promoting them to high-priority status
Solution Approach 2:
Task priority is not fixed but dynamic - normal tasks can be promoted to high-priority status when they exceed the delay threshold. This dynamic adjustment resolves the contradiction by allowing priority to change based on actual task delay conditions
2Reliability
If delay check operations are performed frequently, then task starvation prevention is improved, but controller processing overhead increases
Solution Approach 1:
The controller performs delay checks selectively rather than continuously - only checking when high-priority tasks are being executed or when normal tasks might be approaching the delay threshold. This partial action approach maintains reliability while reducing unnecessary processing overhead
Data Source
AI summary
A memory system includes a controller configured to store start time stamps of a plurality of tasks, determine a delayed task among the tasks by performing a delay check operation based on an end time stamp of a current task and the start time stamps, and assign a priority to the delayed task.


