Multiple-thread processor with in-pipeline, thread selectable storage
First Claim
1. A vertically multi-threaded processor comprising:
- a register file structure replicated to simultaneously represent register state for at least two threads; and
at least one pipeline sharable amongst the two threads and coupled to the register file structure, the sharable pipeline including replicated thread selectable storage elements defined therein, whereby the processor freezes in the pipeline, for later resumption, active state of the pipeline and resumes a previously frozen state of the pipeline to facilitate rapid context switch between the two threads.
0 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.
95 Citations
42 Claims
-
1. A vertically multi-threaded processor comprising:
-
a register file structure replicated to simultaneously represent register state for at least two threads; and at least one pipeline sharable amongst the two threads and coupled to the register file structure, the sharable pipeline including replicated thread selectable storage elements defined therein, whereby the processor freezes in the pipeline, for later resumption, active state of the pipeline and resumes a previously frozen state of the pipeline to facilitate rapid context switch between the two threads. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16)
-
-
17. A method of operating a multi-Threaded processor, the method comprising:
-
executing plural threads; simultaneously representing, in a register file structure, register state for a least two of the threads; and simultaneously representing respective pipeline states for the two threads, the respective pipeline states being represented in a pipeline shared amongst the two threads using replicated thread selectable storage elements defined in the shared pipeline itself; and performing a rapid context switch between the two threads at least in part by freezing in the shared pipeline, for later resumption, active state of the shared pipeline and by resuming a previously frozen state of the shared pipeline. - View Dependent Claims (18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29)
-
- 30. A multi-threaded processor that simultaneously represents in thread selectable storage that is distributed throughout a pipeline thereof both active and frozen states of the pipeline, the thread selectable storage facilitating rapid context switch between threads corresponding to the active and frozen states.
-
32. A processor comprising:
a first multiple-thread processor core including a multiple-thread pipeline, the multiple-thread pipeline including a plurality of multiple-bit thread-selectable flip-flops, the multiple-bit thread-selectable flip-flops selecting pipeline state corresponding to an active thread from amongst pipeline states stored in the multiple-thread pipeline for a plurality of execution threads. - View Dependent Claims (33, 34, 35, 36, 37)
-
38. A method of making a multi-threaded processor product, the method comprising:
-
converting a single-thread processor core to a multiple-threaded processor core at least in part by substituting for pipeline registers that include single-bit flip-flops, respective multiple-bit pipeline registers embodied as collections of multiple-bit, thread-selectable flip-flops; maintaining substantially the same semiconductor footprint for the multiple-bit, thread-selectable flip-flops as for the single-bit flip-flops; and fabricating the multi-threaded processor product with the substituted multiple-bit, thread-selectable flip-flops. - View Dependent Claims (39)
-
-
40. An apparatus comprising:
-
first means for simultaneously representing register state for a least two threads executing in a processor; and second means for simultaneously representing in a first pipeline, respective pipeline states for the two threads;
wherein the pipeline state corresponding to one of the two threads is active and wherein the pipeline state corresponding to the other of the two threads is frozen therein. - View Dependent Claims (41, 42)
-
Specification