Processor with multiple-thread, vertically-threaded pipeline
First Claim
1. A processor comprising:
- a shared processor pipeline that includes therein a plurality of multiple-bit flip-flops, each multiple-bit flip-flop capable of concurrently holding in the shared processor pipeline, at least a portion of thread state for a plurality of execution treads, one of the execution threads being actively executed in the shared processor pipeline at a given time; and
thread control logic coupled to the shared processor pipeline and cap able of controlling the shared processor pipeline to select thread state for an active one of the execution threads, including the portion of the thread state represented in the multiple-bit flip-flops of the shared processor pipeline.
2 Assignments
0 Petitions
Accused Products
Abstract
A processor reduces wasted cycle time resulting from stalling and idling, and increases the proportion of execution time, by supporting and implementing both vertical multithreading and horizontal multithreading. Vertical multithreading permits overlapping or “hiding” of cache miss wait times. In vertical multithreading, multiple hardware threads share the same processor pipeline. A hardware thread is typically a process, a lightweight process, a native thread, or the like in an operating system that supports multithreading. Horizontal multithreading increases parallelism within the processor circuit structure, for example within a single integrated circuit die that makes up a single-chip processor. To further increase system parallelism in some processor embodiments, multiple processor cores are formed in a single die. Advances in on-chip multiprocessor horizontal threading are gained as processor core sizes are reduced through technological advancements.
-
Citations
37 Claims
-
1. A processor comprising:
-
a shared processor pipeline that includes therein a plurality of multiple-bit flip-flops, each multiple-bit flip-flop capable of concurrently holding in the shared processor pipeline, at least a portion of thread state for a plurality of execution treads, one of the execution threads being actively executed in the shared processor pipeline at a given time; and
thread control logic coupled to the shared processor pipeline and cap able of controlling the shared processor pipeline to select thread state for an active one of the execution threads, including the portion of the thread state represented in the multiple-bit flip-flops of the shared processor pipeline. - View Dependent Claims (2, 3, 4, 5, 6, 7)
-
-
8. A processor comprising:
-
a shared processor pipeline including a plurality of pulse-based multiple-bit high-speed flip-flops, each pulse-based multiple-bit high-speed flip-flop including a plurality of latches, wherein the shared processor pipeline includes a plurality of processing units capable of executing a plurality of instructions in parallel, the shared processor pipeline being capable of concurrently holding a plurality of execution threads, one of the plurality of execution threads being actively executed; and
a thread control logic coupled to the shared processor pipeline that is capable of controlling the shared processor pipeline to select a thread machine state of the plurality of execution threads to be in either an actively executed state or a held state. - View Dependent Claims (9, 10, 11, 12, 13, 14, 15, 16, 17)
-
-
18. A processor comprising:
-
a plurality of processing units that operate in a shared processor pipeline, the shrub processor pipeline including a plurality of pulse-based multiple-bit high-ed flip-flops, each pulse-based multiple-bit high-speed flip-flop including a plurality of latches, wherein the plurality of processing units are capable of concurrently holding a plurality of execution threads as a plurality of shadow states, the individual shadow states being respectively allocated to an execution thread of a plurality of execution threads; and
a thread control logic coupled to the shared processor pipeline that is capable of controlling the shared processor pipeline to select a thread machine state of the plurality of execution threads, the thread machine state of the individual execution threads being an actively executed state or a held state. - View Dependent Claims (19, 20, 21, 22)
-
-
23. A processor comprising:
-
a plurality of processing units in a single integrated circuit that are each capable of executing respective pluralities of execution threads in respective pipelines thereof, the pipelines each being capable of concurrently representing therein at least a portion of thread state for plural execution threads, the pipelines including a plurality of multiple-bit flip-flops, each multiple-bit flip-flop including a plurality of latches for representing respective ones of the thread states;
thread control logic coupled to at least one of the pipelines and capable of controlling the pipeline to select an active one of the represented thread states; and
an external cache control unit coupled to the pipelines and shared thereamongst. - View Dependent Claims (24, 25, 26, 27, 29, 30)
-
-
28. A processor according to 23 wherein an individual processing unit of the plurality of processing units further includes:
a Peripheral Component Interconnect (PC) interface coupled to the external cache control unit.
-
31. A method of operating a processor comprising:
-
concurrently representing thread states for a plurality of execution threads in multiple-bit flip-flops of a shed processor pipeline each multiple-bit flip-flop including a plurality of latches for representing a portion of the respective thread states;
actively executing one of the plurality of execution threads; and
controlling the shared processor pipeline to select a respective one of the concurrently represented thread states. - View Dependent Claims (32)
-
-
33. A processor comprising:
-
a shared processor pipeline including a plurality of pulse-based multiple-bit flip-flops, each pulse-based multiple-bit flip-flop including a plurality of latches, wherein the shared processor pipeline is capable of concurrently representing at least a portion of thread state for a plurality of execution threads, one of the plurality of execution threads being actively executed, at least a portion of thread state for others of the plurality of execution threads being held within the shared processor pipeline pending selection for execution; and
thread control logic coupled to the shared processor pipeline that is capable of controlling activation and deactivation of the plurality of execution threads in the shared processor pipeline. - View Dependent Claims (34)
-
-
35. A processor comprising:
-
a vertically multithreaded processor pipeline including a plurality of pipeline registers defined therein that include, for respective storage positions thereof, multiple-bit flip-flops wherein respective ones of the multiple-bits encode at least a portion of thread state for respective execution threads concurrently represented in the processor pipeline; and
thread control logic coupled to the processor pipeline and selective for the respective bits of the multiple-bit flip-flops, which correspond to an active one of the execution threads. - View Dependent Claims (36, 37)
-
Specification