Switching method in a multi-threaded processor
First Claim
1. A method of operating a processor comprising:
- running a non-threaded program application;
executing the non-threaded program in a multiple-thread pipeline including a plurality of multiple-bit flip-flops that are capable of holding a plurality of execution threads;
switching context in a fast context switching operation including;
executing a first context in a first thread pathway in the multiple-thread pipeline;
receiving an exception condition signal;
in response to receipt of the exception condition signal, stalling the first context immediately including immediately deactivating the first context and activating an exception handler context while the state of the contexts in the multiple-thread pipeline remains the same.
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.
121 Citations
11 Claims
-
1. A method of operating a processor comprising:
-
running a non-threaded program application;
executing the non-threaded program in a multiple-thread pipeline including a plurality of multiple-bit flip-flops that are capable of holding a plurality of execution threads;
switching context in a fast context switching operation including;
executing a first context in a first thread pathway in the multiple-thread pipeline;
receiving an exception condition signal;
in response to receipt of the exception condition signal, stalling the first context immediately including immediately deactivating the first context and activating an exception handler context while the state of the contexts in the multiple-thread pipeline remains the same. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10)
the exception handler context is activated without operating system penalty.
-
-
3. A method according to claim 1 wherein:
the exception handler context is activated in hardware without incurring operating system speed penalty of software save/restore operations.
-
4. A method according to claim 1 wherein:
the multiple-thread pipeline includes a plurality of pulse-based high-speed flip-flops, the pulse-based high-speed flip-flops having a latch structure coupled to a plurality of select-bus lines, the select-bus lines selecting an active thread from among the plurality of execution threads.
-
5. A method according to claim 1 wherein executing a context in a multiple-thread pipeline includes:
-
latching data in pulse-based high-speed flip-flops; and
selecting an active thread from among the plurality of execution threads using select-bus lines.
-
-
6. A method according to claim 1 further comprising:
-
detecting a cache miss;
generating a cache miss stall signal in response to the cache miss stall; and
freezing an active state in the pipeline in response to the cache miss stall signal.
-
-
7. A method according to claim 1 further comprising:
issuing instructions for the program application in-order.
-
8. A method according to claim 1 further comprising:
-
issuing instructions for the program application in-order; and
managing a machine state of the individual contexts separately and independently.
-
-
9. A method according to claim 1 further comprising:
loading data from a storage and storing data to a storage via a plurality of load/store units that are individually allocated to individual threads in the multiple-thread pipeline.
-
10. A method according to claim 1 further comprising:
concurrently executing a plurality of execution threads in a plurality of multiple-thread pipelines so that the processor executes the one or more program applications with vertical threading and horizontal threading.
-
11. A processor comprising:
-
means for running a non-threaded program application;
means for executing the non-threaded program in a multiple-thread pipeline including a plurality of multiple-bit flip-flops that are capable of holding a plurality of execution threads;
means for switching context in a fast context switching operation including;
means for executing a first context in a first thread pathway in the multiple-thread pipeline;
means for receiving an exception condition signal;
means response to receipt of the exception condition signal for stalling the first context immediately including;
immediately deactivating the first context and activating an exception handler context while the state of the contexts in the multiple-thread pipeline remains the same.
-
Specification