Simplified Hash Table
US-2024422006-A1 · Dec 19, 2024 · US
US2016103709A1 · US · A1
| Field | Value |
|---|---|
| Publication number | US-2016103709-A1 |
| Application number | US-201514976029-A |
| Country | US |
| Kind code | A1 |
| Filing date | Dec 21, 2015 |
| Priority date | Jun 21, 2013 |
| Publication date | Apr 14, 2016 |
| Grant date | — |
A practical reading order for non-experts. Skip the full description unless you need deep technical detail.
What the patent document calls the invention.
A short plain-language summary of the technical disclosure.
Who owns or filed the patent and who is credited as inventor.
Filing, priority, publication, and grant dates set the timeline.
The legal scope of protection — read this for what is actually claimed.
Technology tags used to group this patent with similar filings.
Prior art links and similar publications in this corpus.
Official abstract text for this publication.
A method and an apparatus for managing and scheduling tasks in a many-core system are presented. The method improves process management efficiency in the many-core system. The method includes, when a process needs to be added to a task linked list, adding a process descriptor pointer of the process to a task descriptor entry corresponding to the process, and adding the task descriptor entry to the task linked list; if a process needs to be deleted, finding a task descriptor entry corresponding to the process, and removing the task descriptor entry from the task linked list; and when a processor core needs to run a new task, removing an available priority index register with a highest priority from a queue of the priority index register.
Opening claim text (preview).
What is claimed is: 1 . A method for managing a task of a many-core system, comprising: obtaining a first task descriptor entry for a first process at a beginning of a first task queue according to a first head index value of a first head index in a first index register of the first task queue, wherein the first task descriptor entry corresponds to a first index number, wherein the first index number corresponds to the first head index value, and wherein the first task descriptor entry comprises a first process descriptor pointer and a first next task index; obtaining, according to the first process descriptor pointer, a first process descriptor corresponding to the first process, wherein the first process descriptor pointer points to an address of memory in which the first process descriptor is located; obtaining a second task descriptor entry according to a first next task index value of the first next task index, wherein the second task descriptor entry comprises a second process descriptor pointer, wherein the second task descriptor entry corresponds to a second index number, and wherein the second index number corresponds to the first next task index; obtaining, according to the second process descriptor pointer, a second process descriptor corresponding to a second process; and traversing the first task queue until obtaining a last process descriptor corresponding to a tail index value of a tail index in the first index register, wherein the tail index indicates a tail index number corresponding to a last task descriptor entry of a last process at an end of the first task queue. 2 . The method according to claim 1 , further comprising inserting a fourth process into a second task queue by: obtaining a fourth process descriptor pointer and a fourth process priority of the fourth process; obtaining a fifth task descriptor entry according to a second head index value of a third head index in a third index register of an empty queue, wherein the fifth task descriptor entry corresponds to a fifth index number, and wherein the fifth task descriptor entry comprises a fifth process descriptor pointer and a fifth next task index; modifying a fifth processor descriptor pointer value of the fifth process descriptor pointer to a fourth process descriptor pointer value of the fourth process descriptor pointer, wherein the third index register of the empty queue is used to record an idle task queue in an idle state; modifying the third head index value to a fifth next task index value of the fifth next task index; modifying the fifth next task index value to a second head index value of a second head index in a second index register of the second task queue, wherein the second task queue comprises a fourth priority corresponding to the fourth process priority; and modifying the second head index value to the fifth index number. 3 . The method according to claim 1 , further comprising deleting a fifth process from a second task queue corresponding to the fifth process by: obtaining a fifth process descriptor pointer and a fifth process priority of the fifth process; traversing the second queue to obtain a task descriptor entry that corresponds to a second head index value of a second head index in a second index register of the second task queue, wherein the second task queue comprises a fifth priority corresponding to the fifth process priority; determining whether a fifth task descriptor entry corresponding to the fifth process is obtained from the traversing; and removing the fifth process from the second index register of the second task queue when determining that the fifth task descriptor entry corresponds to the fifth process is obtained. 4 . The method according to claim 3 , wherein the fifth task descriptor entry comprises a fifth next task index, wherein the fifth task descriptor entry corresponds to a fifth index number, and wherein removing the fifth process from the second index register of the second task queue comprises: determining whether the second head index value or a second tail index value of a second tail index in the second index register corresponds to the fifth index number; determining whether a second tail index value of a second tail index in the second index register of the second task queue corresponds to the fifth index number; modifying the second head index value to a fifth next task index value of the fifth next task index when determining that the second head index value corresponds to the fifth index number; modifying the second tail index value to the fifth next task index value when determining that the second tail index value corresponds to the fifth index number; modifying the fifth next task index value to a third head index value of a third head index in a third index register of an empty queue when determining that the second head index value does not correspond to the fifth index number; modifying the fifth next task index value to the third head index value when determining that the second tail index value does not correspond to the fifth index number; modifying the third head index value to the fifth index number when determining that the second head index value does not correspond to the fifth index number; modifying the third head index value to the fifth index number when determining that the second tail index value does not correspond to the fifth index number; determining whether a third tail index value of a third tail index in the third index register of the empty queue is null when determining that the second head index value does not correspond to the fifth index number; determining whether the third tail index value is null when determining that the second tail index value does not correspond to the fifth index number; and modifying the third tail index value to the fifth index number when determining that the third tail index value is null. 5 . The method according to claim 1 , further comprising causing a processor core to run a sixth process by: obtaining, among index registers with all priorities, a sixth index register with a sixth priority that is a highest priority, wherein a sixth head index value of a sixth head index in the sixth index register with the sixth priority is not null; obtaining a sixth task descriptor entry corresponding to the sixth head index value; modifying the sixth head index value to a sixth next task index value of a sixth next task index in the sixth task descriptor entry; modifying the sixth next task index value to a third head index value of a third head index in a third index register of an empty queue; modifying the third head index value to a sixth index number corresponding to the sixth task descriptor entry; determining whether a third tail index value of a third tail index in the third index register of the empty queue is null; and modifying the third tail index value to the sixth index number when determining that the third tail index value is null. 6 . The method according to claim 2 , further comprising: determining that the third head index value of the third head index in the third index register of the empty queue is null; creating a sixth task descriptor structure in an external memory; modifying a sixth process descriptor pointer value of a sixth process descriptor pointer in the sixth task descriptor structure to the fourth process descriptor pointer value; modifying a sixth next task pointer value of a sixth next task pointer in the sixth task descriptor structure to a value of an external linked list pointer in the second index register; and modifying the value of the external linked list pointer in the second index register to an address of the sixth task descriptor structure. 7 . The method according to claim 3 , furth
Allocation of resources, e.g. of the central processing unit [CPU] · CPC title
Priority · CPC title
Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues · CPC title
Scheduler internals · CPC title
Multiproc · CPC title
Related publications grouped by family.
Answers are generated from the same data shown on this page.