Simplified Hash Table
US-2024422006-A1 · Dec 19, 2024 · US
US10120713B2 · US · B2
| Field | Value |
|---|---|
| Publication number | US-10120713-B2 |
| Application number | US-201615202160-A |
| Country | US |
| Kind code | B2 |
| Filing date | Jul 5, 2016 |
| Priority date | Jul 5, 2016 |
| Publication date | Nov 6, 2018 |
| Grant date | Nov 6, 2018 |
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 task control circuit maintains, in response to task event information, a task information queue that includes task information for a plurality of tasks. Based upon the task information in the task information queue, a future task switch condition is identified as corresponding to a task switch time for a particular task of the plurality of tasks. A load start time is determined for a set of instructions for the particular task. A pre-fetch request is generated to load the set of instructions for the particular task into the memory circuit. The pre-fetch request is forwarded to a hardware loader circuit. In response to the task switch time, a task event trigger is generated for the particular task. The hardware loader circuit is used to load, in response to the pre-fetch request, the set of instructions from a non-volatile memory into the memory circuit.
Opening claim text (preview).
What is claimed is: 1. A system for loading and executing a plurality of tasks under the control of an operating system (OS), the system comprising: a computer processor circuit configured to execute software instructions for the OS and the plurality of tasks; a memory circuit configured to store the software instructions and coupled to the computer processor circuit to provide the software instructions to the computer processor circuit; a hardware loader circuit coupled to the memory circuit and configured to load software instructions into the memory circuit; and a task control circuit coupled to the computer processor circuit and the memory circuit and configured to: maintain, in response to task event information, a task information queue that includes task information for the plurality of tasks; identify, based upon the task information in the task information queue, a future task switch condition corresponding to a task switch time for a particular task of the plurality of tasks; determine, based upon the task information and the task switch time, a load start time for a set of instructions for the particular task by being further configured to: determine a load anticipation time for the particular task as a function of a size of the set of instructions and access time for a non-volatile memory circuit configured to store the set of instructions, and subtract the load anticipation time from the task switch time to result in the load start time; generate, in response to the load start time, a pre-fetch request to load the set of instructions for the particular task into the memory circuit; and forward the pre-fetch request to the hardware loader circuit. 2. The system of claim 1 , wherein the OS is designed to maintain a set of task information in the memory circuit and wherein at least some of the task information in the task information queue is a copy of the task information maintained by the OS. 3. The system of claim 2 , wherein the task information queue contains additional data not present in the set of task information maintained by the OS. 4. The system of claim 2 , wherein the task control circuit is configured to maintain consistency between the task information queue and the task information maintained by the OS by being further configured to implement at least one of: directly access the memory circuit and the task information maintained by the OS; and invoke software code within the OS to access the memory circuit and the task information maintained by the OS. 5. The system of claim 1 , wherein the task control circuit is further configured to generate, in response to the task switch time, a task event trigger for the particular task, wherein the task event trigger for the particular task includes at least one of a generated interrupt and a set register value for a register accessible by the computer processor circuit. 6. The system of claim 1 , wherein the hardware loader circuit is configured to serialize load requests for the pre-fetch request by generating a series of individual load requests for the set of instructions. 7. The system of claim 1 , wherein the task control circuit is configured to generate multiple pre-fetch requests each containing a respective and different subset of the set of instructions. 8. The system of claim 1 , wherein the task control circuit is configured to identify the future task switch condition by determining that a priority for the particular task is higher than a priority for other tasks in the task information queue. 9. The system of claim 1 , wherein the task control circuit is configured to identify the future task switch condition by identifying an expiration time for a time slice; and determining that the particular task is assigned to a subsequent time slice. 10. The system of claim 1 wherein the OS is a real time OS; the computer processor circuit is located on an integrated circuit (IC) die and wherein the hardware loader circuit is configured to retrieve the set of instructions from a non-volatile memory circuit is a programmable read-only memory and external to the IC die. 11. The system of claim 10 , wherein the task information queue includes task entries that specify a start address location and an end address location for the set of instructions in the non-volatile memory circuit. 12. A method for use with a computer processor circuit configured to execute software instructions stored in a memory circuit and for an operating system (OS) and a plurality of tasks under control of the OS, the method comprising: performing, by a task control circuit coupled to the computer processor circuit and the memory circuit: maintaining, in response to task event information, a task information queue that includes task information for the plurality of tasks; identifying, based upon the task information in the task information queue, a future task switch condition corresponding to a task switch time for a particular task of the plurality of tasks; determining, based upon the task information and the task switch time, a load start time for a set of instructions for the particular task by: determining a load anticipation time for the particular task as a function of a size of the set of instructions and access time for a non-volatile memory circuit configured to store the set of instructions, and subtracting the load anticipation time from the task switch time to result in the load start time; generating, in response to the load start time, a pre-fetch request to load the set of instructions for the particular task into the memory circuit; forwarding the pre-fetch request to a hardware loader circuit; and generating, in response to the task switch time, a task event trigger for the particular task; and using the hardware loader circuit to load, in response to the pre-fetch request, the set of instructions from a non-volatile memory into the memory circuit. 13. The method of claim 12 , further comprising, maintaining, by the OS, a set of task information in the memory circuit and wherein at least some of the task information in the task information queue is a copy of the task information maintained by the OS. 14. The method of claim 13 , wherein the task information queue contains additional data not present in the set of task information maintained by the OS. 15. The method of claim 13 , further comprising using the task control circuit to maintain consistency between the task information queue and the task information maintained by the OS by at least one of: directly accessing the memory circuit and the task information maintained by the OS; and invoking software code within the OS to access the memory circuit and the task information maintained by the OS. 16. The method of claim 12 , wherein the generating the task event trigger for the particular task includes at least one of: generating an interrupt and setting of a register value that is accessible by the computer processor circuit. 17. The method of claim 12 , further comprising using the hardware loader circuit to serialize load requests for the pre-fetch request by generating a series of individual load requests for the set of instructions. 18. The method of claim 12 , further comprising using the task control circuit to generate multiple pre-fetch requests each containing a respective and different subset of the set of instructions. 19. The method of claim 12 , further comprising using the task control circuit to identify the future task switch condition by determining that a priority for the par
Task transfer initiation or dispatching · CPC title
in hierarchically structured memory systems, e.g. virtual memory systems · CPC title
by program, e.g. task dispatcher, supervisor, operating system · CPC title
Program initiating; Program switching, e.g. by interrupt · CPC title
Saving or restoring of program or task context · CPC title
Related publications grouped by family.
Answers are generated from the same data shown on this page.