Switching method in a multi-threaded processor
First Claim
1. A computing system comprising:
- at least part of a memory hierarchy;
a processor that stores plural execution contexts in a pipeline thereof, the processor performing a context switch between a first one and a second one of the execution contexts by freezing the first execution context in the pipeline and resuming execution using previously frozen state corresponding to the second execution context, the context switching performed without draining the first execution context from the pipeline;
a context selectable storage distributed throughout the pipeline, the context selectable storage coupled into the pipeline to represent intermediate pipeline states for at least two concurrently executing execution contexts; and
wherein at least some of the context-selectable storage distributed throughout the pipeline employs multi-bit flip-flops, wherein respective bits of each multi-bit flip-flop correspond to a selectable one of the execution contexts.
0 Assignments
0 Petitions
Accused Products
Abstract
A processor includes logic for attaining a very fast exception handling functionality while executing non-threaded programs by invoking a multithreaded-type functionality in response to an exception condition. The processor, while operating in multithreaded conditions or while executing non-threaded programs, progresses through multiple machine states during execution. The very fast exception handling logic includes connection of an exception signal line to thread select logic, causing an exception signal to evoke a switch in thread and machine state. The switch in thread and machine state causes the processor to enter and to exit the exception handler immediately, without waiting to drain the pipeline or queues and without the inherent timing penalty of the operating system'"'"'s software saving and restoring of registers.
-
Citations
18 Claims
-
1. A computing system comprising:
-
at least part of a memory hierarchy; a processor that stores plural execution contexts in a pipeline thereof, the processor performing a context switch between a first one and a second one of the execution contexts by freezing the first execution context in the pipeline and resuming execution using previously frozen state corresponding to the second execution context, the context switching performed without draining the first execution context from the pipeline; a context selectable storage distributed throughout the pipeline, the context selectable storage coupled into the pipeline to represent intermediate pipeline states for at least two concurrently executing execution contexts; and wherein at least some of the context-selectable storage distributed throughout the pipeline employs multi-bit flip-flops, wherein respective bits of each multi-bit flip-flop correspond to a selectable one of the execution contexts. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8)
-
-
9. A method of operating a processor, the method comprising:
-
executing plural execution contexts in a pipeline of the processor; performing a context switch between a first one and a second one of the execution contexts by freezing the first execution context in the pipeline and resuming execution using previously frozen state corresponding to the second execution context, the context switching performed without draining the first execution context from the pipeline; and storing intermediate pipeline states for at least two concurrently executing execution contexts in a context selectable storage distributed throughout the pipeline, the context selectable storage coupled into the pipeline, wherein at least some of the context-selectable storage distributed throughout the pipeline employs multi-bit flip-flops, wherein respective bits of each multi-bit flip-flop correspond to a selectable one of the execution contexts. - View Dependent Claims (10, 11, 12)
-
-
13. A processor comprising:
-
at least one pipeline, including storage distributed throughout the pipeline for at least two concurrently executing execution contexts, the processor supporting a context switch between a first one and a second one of the execution contexts by freezing the first execution context in the pipeline and resuming execution using previously frozen state corresponding to the second execution context, the context switching performable without draining the first execution context from the pipeline; a context-selectable register file coupled to the pipeline to represent architectural states for at least the two concurrently executing execution contexts; and wherein at least some of the storage distributed through out the pipeline employs multi-bit flip-flops, wherein respective bits of each multi-bit flip-flop correspond to a selectable one of the execution contexts.
-
-
14. A method comprising:
-
simultaneously representing throughout a processor pipeline, state information corresponding to plural active execution contexts, the state information stored in a context selectable storage coupled to the processor pipeline, wherein at least some of the context-selectable storage employs multi-bit flip-flops, wherein respective bits of each multi-bit flip-flop correspond to a selectable one of the active execution contexts; and switching between a first one and a second one of the active execution contexts by freezing the first execution context in the pipeline and resuming execution using previously frozen state corresponding to the second execution context, the switching performed without draining the first execution context from the pipeline. - View Dependent Claims (17, 18)
-
-
15. An apparatus comprising:
-
a processor coupled to at least part of a memory hierarchy; means defined in the processor for storing plural execution contexts in a pipeline thereof, the processor performing a context switch between a first one and a second one of the execution contexts by freezing the first execution context in the pipeline and resuming execution using previously frozen state corresponding to the second execution context, the context switching performed without draining the first execution context from the pipeline; a context selectable storage distributed throughout the pipeline, the context selectable storage coupled into the pipeline to represent intermediate pipeline states for the plurality of concurrently executing execution contexts; and wherein at least some of the context-selectable storage distributed throughout the pipeline employs multi-bit flip-flops, wherein respective bits of each multi-bit flip-flop correspond to a selectable one of the plurality of execution contexts.
-
-
16. An method of making a processor integrated circuit product, the method comprising:
-
defining a pipelined processor; fabricating the pipelined processor as an integrated circuit with in-pipeline storage for plural execution contexts thereof, the in-pipeline storage allowing a context switch between a first one and a second one of the execution contexts by freezing the first execution context in the pipeline and resuming execution using previously frozen state corresponding to the second execution context, the context switching performable in the fabricated pipelined processor without draining the first execution context from the pipeline; and wherein the in-pipeline storage is fabricated without multiplexers by using multi-bit storage logic that substantially maintains an integrated circuit footprint corresponding to a pipeline with single-bit storage logic.
-
Specification