IP Library › Granted Patent US 9,058,208
Granted Patent B2
US 9,058,208 · App. 13/674,106 · Granted Jun 16, 2015

Method of scheduling tasks for memories and memory system thereof

Inventors: Yu-Tang Chang (Hsinchu, TW); Yi-Chun Liu (Hsinchu, TW)
Assignee: Skymedi Corporation
G06F9/4881G06F2209/486G06F3/061G06F3/0625G06F3/0659G06F3/0679G06F13/1642Y02B60/1246Y02B60/144
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 9,058,208
App. No.
13/674,106
Granted
Jun 16, 2015
Kind
B2
Abstract

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.

Claims (46)

1. A method of scheduling a plurality of tasks for a plurality of memories in a memory system, the method comprising:

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, each task queue storing tasks which are of one of the plurality of task types and 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 in the first execution queue is executed according to the priority of a first task type corresponding to the first task queue;

wherein the first task is chosen according to the priority of the first task type corresponding to the first task queue when a sum of throughputs of all of the tasks in the plurality of tasks queues is greater than a bandwidth of the memory system.

2. The method of claim 1 , wherein when a second task to be executed arrives, the second task is classified to a second task type among the plurality of task types and stored in a second task queue corresponding to the second task type.

3. The method of claim 2 , further comprising converting the second task stored in the second task queue among the plurality of task queues into at least one command to be stored in a second execution queue among the at least one execution queue.

4. The method of claim 3 , wherein the at least one command in the second execution queue is executed according to the priority of a second task type corresponding to the second task queue.

5. The method of claim 2 , further comprising converting the second task stored in the second task queue among the plurality of task queues into at least one command to be stored in the first execution queue among the at least one execution queue.

6. The method of claim 5 , wherein the priority of the second task is higher than the priority of the first task, the command converted from the second task is executed firstly, and then the command converted from the first task is executed.

7. The method of claim 1 , further comprising defining a target throughput for one task type among the plurality of task types.

8. The method of claim 1 , wherein each execution queue among the at least one execution queue corresponds to at least one memory.

9. The method of claim 8 , wherein the at least one command is executed for memories in an interleaved way.

10. The method of claim 1 , wherein the priority for each of the plurality of task types is defined according to a status of the memory system.

11. A memory system, comprising:

a plurality of memories; and

a memory controller, embodied a program executed by a processor to perform a method of scheduling a plurality of tasks for the plurality of memories in the memory system, the method comprising:

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, each task queue storing tasks which are of one of the plurality of task types and to be executed within the plurality of tasks;

assigning a priority for the 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 in the first execution queue is executed according to the priority of a first task type corresponding to the first task queue;

wherein the first task is chosen according to the priority of the first task type corresponding to the first task queue when a sum of throughputs of all of the tasks in the plurality of tasks queues is greater than a bandwidth of the memory system.

12. The memory system of claim 11 , wherein when a second task to be executed arrives, the second task is classified to a second task type among the plurality of task types and stored in a second task queue corresponding to the second task type.

13. The memory system of claim 12 , wherein the method further comprises:

converting the second task stored in the second task queue among the plurality of task queues into at least one command to be stored in a second execution queue among the at least one execution queue.

14. The memory system of claim 13 , wherein the at least one command in the second execution queue is executed according to the priority of a second task type corresponding to the second task queue.

15. The memory system of claim 12 , wherein the method further comprises:

converting the second task stored in the second task queue among the plurality of task queues into at least one command to be stored in the first execution queue among the at least one execution queue.

16. The memory system of claim 15 , wherein the priority of the second task is higher than the priority of the first task, the command converted from the second task is executed firstly, and then the command converted from the first task is executed.

17. The memory system of claim 11 , wherein the method further comprises:

defining a target throughput for one task type among the plurality of task types.

18. The memory system of claim 11 , wherein each execution queue among the at least one execution queue corresponds to at least one memory.

19. The memory system of claim 18 , wherein the at least one command is executed for memories in an interleaved way.

20. The memory system of claim 11 , wherein the priority for each of the plurality of task types is defined according to a status of the memory system.

21. A method of scheduling a plurality of tasks for a plurality of memories in a memory system, the method comprising:

receiving a task;

determining a task type of the task;

queuing the task in a corresponding task queue according to the task type of the task;

giving a priority to the task according to the task type of the task when a sum of throughputs of a plurality of tasks in a plurality of tasks queues is greater than a bandwidth of the memory system;

converting the task into at least one command according to the priority of the task; and

queuing the at least one command converted from the task in a corresponding execution queue according to the priority of the task.

Assignments (3)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 25, 2017
From: SKYMEDI CORPORATION
To: JIANGSU HUACUN ELECTRONIC TECHNOLOGY CO., LTD.
Reel/Frame 044475/0553 →
CHANGE OF THE ADDRESS OF THE ASSIGNEE Recorded Apr 29, 2015
From: SKYMEDI CORPORATION
To: SKYMEDI CORPORATION
Reel/Frame 035548/0581 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 12, 2012
From: CHANG, YU-TANG; LIU, YI-CHUN
To: SKYMEDI CORPORATION
Reel/Frame 029277/0068 →
Continuity (1)
Related Publication 20140137128A1 · May 15, 2014