System for multitasking management employing context controller having event vector selection by priority encoding of contex events
First Claim
Patent Images
1. A context controller for managing multitasking in a processor, comprising:
- an event recorder that records occurrences of events; and
an encoder, associated with said event recorder, that, in response to a software instruction, priority encodes bits corresponding to at least some of said events to generate therefrom an event-dependent vector to allow said processor to branch as a function thereof.
17 Assignments
0 Petitions
Accused Products
Abstract
A context controller for managing multitasking in a processor and a method of operating the same. In one embodiment, the context controller includes: (1) an event recorder that records occurrences of events and (2) an encoder, associated with the event recorder, that, in response to a software instruction, priority encodes bits corresponding to at least some of the events to generate therefrom an event-dependent vector to allow the processor to branch as a function thereof. Vectoring is per-instance of the vector decode software instruction, not per-event or per-context.
63 Citations
22 Claims
-
1. A context controller for managing multitasking in a processor, comprising:
-
an event recorder that records occurrences of events; and
an encoder, associated with said event recorder, that, in response to a software instruction, priority encodes bits corresponding to at least some of said events to generate therefrom an event-dependent vector to allow said processor to branch as a function thereof. - View Dependent Claims (2, 3, 4, 5, 6, 7)
address information in said software instruction, and address information in a register of said processor.
-
-
3. The context controller as recited in claim 1 further comprising an event masker, associated with said event recorder and said encoder, that masks said events to yield a subset of said at least some of said events.
-
4. The context controller as recited in claim 1 wherein said event-dependent vector is selected from a group consisting of:
-
a direct branch, and an indirect branch.
-
-
5. The context controller as recited in claim 1 wherein said event recorder is embodied in at least one flip-flop within said context controller.
-
6. The context controller as recited in claim 1 further comprising:
-
a foreground task controller that activates contexts corresponding to foreground tasks based on priority and in response to said events; and
a background task controller that cyclicly activates contexts corresponding to said background tasks subject to activation of said contexts corresponding to said foreground tasks.
-
-
7. The context controller as recited in claim 1 further comprising a background task controller that activates contexts corresponding to background tasks based on numbers of instructions executed by each of said background tasks.
-
8. A method of managing multitasking in a processor, comprising the steps of:
-
recording occurrences of events; and
in response to a software instruction, priority encoding bits corresponding to at least some of said events to generate therefrom an event-dependent vector to allow said processor to branch as a function thereof. - View Dependent Claims (9, 10, 11, 12, 13, 14)
address information in said software instruction, and address information in a register of said processor.
-
-
10. The method as recited in claim 8 further comprising the step of masking said events to yield a subset of said at least some of said events.
-
11. The method as recited in claim 8 wherein said step of priority encoding comprises the step of generating an event-dependent vector selected from a group consisting of:
-
a direct branch, and an indirect branch.
-
-
12. The method as recited in claim 8 wherein said step of recording comprises the step of changing a state of at least one flip-flop within said context controller.
-
13. The method as recited in claim 8 further comprising the steps of:
-
activating contexts corresponding to foreground tasks based on priority and in response to said events; and
cyclicly activating contexts corresponding to said background tasks subject to activation of said contexts corresponding to said foreground tasks.
-
-
14. The method as recited in claim 8 further comprising the step of activating contexts corresponding to background tasks based on numbers of instructions executed by each of said background tasks.
-
15. A processor, comprising:
-
an instruction decoder that decodes instructions received into said processor and corresponding to a plurality of tasks;
a plurality of register sets, corresponding to said plurality of tasks, that contain operands to be manipulated;
an execution core, coupled to said instruction decoder and said plurality of register sets, that executes instructions corresponding to an active one of said plurality of tasks to manipulate said operands; and
a context controller for managing multitasking in said processor, including;
an event recorder that records occurrences of events, and an encoder, associated with said event recorder, that, in response to a software instruction, priority encodes bits corresponding to at least some of said events to generate therefrom an event-dependent vector to allow said processor to branch as a function thereof. - View Dependent Claims (16, 17, 18, 19, 20, 21, 22)
address information in said software instruction, and address information in a register of said processor.
-
-
17. The processor as recited in claim 15 wherein said context controller further includes an event masker, associated with said event recorder and said encoder, that masks ones of said events to yield said at least some of said events.
-
18. The processor as recited in claim 15 wherein said event-dependent vector is selected from the group consisting of:
-
a direct branch, and an indirect branch.
-
-
19. The processor as recited in claim 15 wherein said event recorder is embodied in at least one flip-flop within said context controller.
-
20. The processor as recited in claim 15 wherein said context controller further includes:
-
a foreground task controller that activates contexts corresponding to foreground tasks based on priority and in response to said events; and
a background task controller that cyclicly activates contexts corresponding to said background tasks subject to activation of said contexts corresponding to said foreground tasks.
-
-
21. The processor as recited in claim 15 wherein said context controller further includes a background task controller that activates contexts corresponding to background tasks based on numbers of instructions executed by each of said background tasks.
-
22. The processor as recited in claim 15 wherein said processor forms a portion of a general-purpose computer.
Specification