Hardware controlled instruction pre-fetching

US10120713B2 · US · B2

Patent metadata
FieldValue
Publication numberUS-10120713-B2
Application numberUS-201615202160-A
CountryUS
Kind codeB2
Filing dateJul 5, 2016
Priority dateJul 5, 2016
Publication dateNov 6, 2018
Grant dateNov 6, 2018

How to read this patent

A practical reading order for non-experts. Skip the full description unless you need deep technical detail.

  1. Title

    What the patent document calls the invention.

  2. Abstract

    A short plain-language summary of the technical disclosure.

  3. Assignees and inventors

    Who owns or filed the patent and who is credited as inventor.

  4. Key dates

    Filing, priority, publication, and grant dates set the timeline.

  5. First independent claim

    The legal scope of protection — read this for what is actually claimed.

  6. CPC / IPC classifications

    Technology tags used to group this patent with similar filings.

  7. Citations and related patents

    Prior art links and similar publications in this corpus.

Abstract

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.

First claim

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

Assignees

Inventors

Classifications

  • 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

Patent family

Related publications grouped by family.

External sources

Frequently asked questions

Answers are generated from the same data shown on this page.

What does patent US10120713B2 cover?
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 i…
Who is the assignee on this patent?
Freescale Semiconductor Inc, Nxp Usa Inc
What technology area does this patent fall under?
Primary CPC classification G06F9/4881. Mapped technology areas include Physics.
When was this patent published?
Publication date Tue Nov 06 2018 00:00:00 GMT+0000 (Coordinated Universal Time) (B2). Legal status and post-grant events are not shown on this page.
What related patents are in patentsdb?
We list 8 related publications on this page (citations in our corpus or others sharing the same primary CPC).