Dual thread processor
First Claim
1. A processor, comprising:
- a pipeline stage including, a first input register;
a second input register;
a first output register;
a second output register;
a first selector in communication with the first input register and the second input register;
a second selector in communication with the first output register and the second output register; and
a controller operable to control switching of the first and second selectors such that data associated with a first processor thread pass through the first input register, the pipeline stage, and the first output register during a time that the first processor thread is being processed, and data associated with a second processor thread pass through the second input register, the pipeline stage, and the second output register during a time that the second processor thread is being processed, wherein the first input register and the first output register are operable to store a state of the first processor thread, and wherein the second input register and the second output register are operable to store a state of the second processor thread.
8 Assignments
0 Petitions
Accused Products
Abstract
A pipeline processor architecture, processor, and methods are provided. In one implementation, a processor is provided that includes an instruction fetch unit operable to fetch instructions associated with a plurality of processor threads, a decoder responsive to the instruction fetch unit, issue logic responsive to the decoder, and a register file including a plurality of banks corresponding to the plurality of processor threads. Each bank is operable to store data associated with a corresponding processor thread. The processor can include a set of registers corresponding to each of a plurality of processor threads. Each register within a set is located either before or after a pipeline stage of the processor.
-
Citations
59 Claims
-
1. A processor, comprising:
-
a pipeline stage including, a first input register;
a second input register;
a first output register;
a second output register;
a first selector in communication with the first input register and the second input register;
a second selector in communication with the first output register and the second output register; and
a controller operable to control switching of the first and second selectors such that data associated with a first processor thread pass through the first input register, the pipeline stage, and the first output register during a time that the first processor thread is being processed, and data associated with a second processor thread pass through the second input register, the pipeline stage, and the second output register during a time that the second processor thread is being processed, wherein the first input register and the first output register are operable to store a state of the first processor thread, and wherein the second input register and the second output register are operable to store a state of the second processor thread. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11)
-
-
12. A processor, comprising:
-
a set of registers corresponding to each of a plurality of processor threads, each register within a set being located either before or after a pipeline stage of the processor; and
a programmable controller operable to perform a context switch among the plurality of processor threads, including storing a state of a currently executing processor thread in a corresponding set of registers, and loading a state of another processor thread from a corresponding set of registers to allow for processing of the another processor thread. - View Dependent Claims (13, 14, 15, 16, 17, 18, 19)
-
-
20. A method comprising:
-
providing a first processor thread for instruction execution;
providing a second processor thread for instruction execution;
processing the first processor thread; and
performing a context switch from the first processor thread to the second processor thread including, storing a state of the first processor thread in a first set of registers corresponding to the first processor thread; and
loading a state of the second processor thread from a second set of registers corresponding to the second processor thread. - View Dependent Claims (21, 22, 23, 24, 25, 26, 27, 28)
-
-
29. A processor comprising:
-
an instruction fetch unit operable to fetch instructions associated with a plurality of processor threads;
a decoder responsive to the instruction fetch unit;
issue logic responsive to the decoder; and
a register file including a plurality of banks corresponding to the plurality of processor threads, each bank operable to only store data associated with a corresponding processor thread. - View Dependent Claims (30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40)
-
-
41. A method, comprising:
-
providing a plurality of processor threads; and
performing a context switch among the plurality of processor threads including, storing a state of a currently executing processor thread in a corresponding set of registers; and
loading a state of another processor thread from a corresponding set of registers to allow for processing of the another processor thread. - View Dependent Claims (42, 43, 44, 45, 46, 47, 48)
-
-
49. A method, comprising:
-
fetching instructions associated with a plurality of processor threads;
decoding the instructions;
issuing the instructions to an execution unit; and
storing data associated with an issued instruction of a given processor thread within a corresponding bank of a register file, wherein each bank only stores data associated with a corresponding processor thread. - View Dependent Claims (50, 51, 52, 53, 54, 55, 56, 57, 58, 59)
-
Specification