Claims
- 1. A multithreaded processor comprising:
an instruction decoder for decoding retrieved instructions to determine an instruction type for each of at least a subset of the retrieved instructions; an integer unit coupled to the instruction decoder for processing integer type instructions received from the instruction decoder; and a vector unit coupled to the instruction decoder for processing vector type instructions received from the instruction decoder.
- 2. The multithreaded processor of claim 1 further comprising a reduction unit associated with the vector unit and receiving parallel data elements processed in the vector unit, the reduction unit generating a serial output from the parallel data elements.
- 3. The multithreaded processor of claim 1 wherein the instructions are retrieved by the instruction decoder from a multithreaded cache memory of the multithreaded processor, the multithreaded cache memory comprising a thread cache for each of a plurality of threads of the processor.
- 4. The multithreaded processor of claim 1 wherein the integer unit further comprises an integer instruction queue having an input coupled to an output of the instruction decoder, a register file having an input coupled to an output of the integer instruction queue, an offset unit having an output coupled to an input of the register file, and an addition element having at least one input coupled to an output of the register file.
- 5. The multithreaded processor of claim 4 wherein the offset unit comprises a separate instance for each of a plurality of threads supported by the processor.
- 6. The multithreaded processor of claim 1 wherein the vector unit further comprises a vector instruction queue having an input coupled to an output of the instruction decoder, a vector file having an input coupled to an output of the vector instruction queue, an offset unit having an output coupled to an input of the vector file, and at least one arithmetic element having an input coupled to an output of the vector file.
- 7. The multithreaded processor of claim 6 wherein the offset unit comprises a separate instance for each of a plurality of threads supported by the processor.
- 8. The multithreaded processor of claim 1 wherein the processor is configured to support at least branch, load, store, integer and vector instruction types.
- 9. The multithreaded processor of claim 8 wherein the vector instruction type comprises a single issue multiple dispatch instruction type.
- 10. The multithreaded processor of claim 1 wherein the vector unit comprises a plurality of parallel branches, with each of the branches corresponding to a particular thread of the processor.
- 11. The multithreaded processor of claim 10 wherein each of the parallel branches includes a series combination of a portion of a vector file, a multiplier, an adder and an accumulator.
- 12. The multithreaded processor of claim 1 wherein the processor is configured to execute at least control code, digital signal processor (DSP) code, Java code and network processing code.
- 13. The multithreaded processor of claim 1 wherein the processor is configured to utilize token triggered threading.
- 14. The multithreaded processor of claim 13 wherein the token triggered threading utilizes a token to identify in association with a current processor clock cycle a particular one of a plurality of threads of the processor that will be permitted to issue an instruction for a subsequent clock cycle.
- 15. The multithreaded processor of claim 13 wherein the token triggered threading assigns different tokens to each of a plurality of threads of the processor.
- 16. The multithreaded processor of claim 1 wherein the processor is configured for pipelined instruction processing.
- 17. The multithreaded processor of claim 16 wherein the processor utilizes an instruction pipeline in which each thread issues a single instruction per processor clock cycle.
- 18. The multithreaded processor of claim 16 wherein the processor utilizes an instruction pipeline in which each thread issues multiple instructions per processor clock cycle.
- 19. The multithreaded processor of claim 18 wherein each of a plurality of threads of the processor issues both a load instruction and a vector multiply instruction in each of a corresponding plurality of processor clock cycles without stalling of any of the plurality of threads.
- 20. A processor system comprising:
a multithreaded processor; and a memory associated with the multithreaded processor; the multithreaded processor comprising an instruction decoder for decoding retrieved instructions to determine an instruction type for each of at least a subset of the retrieved instructions; an integer unit coupled to the instruction decoder for processing integer type instructions received from the instruction decoder; and a vector unit coupled to the instruction decoder for processing vector type instructions received from the instruction decoder.
RELATED APPLICATION(S)
[0001] The present application claims the priority of U.S. Provisional Application Serial No. 60/341,289 filed Dec. 20, 2001 and entitled “Method and Apparatus for Multithreaded Processor,” which is incorporated by reference herein.
[0002] The present invention is related to the inventions described in U.S. Patent Applications Attorney Docket No. 1007-5, entitled “Method and Apparatus for Thread-Based Memory Access in a Multithreaded Processor,” Attorney Docket No. 1007-7, entitled “Method and Apparatus for Register File Port Reduction in a Multithreaded Processor,” and Attorney Docket No. 1007-8, entitled “Method and Apparatus for Token Triggered Multithreading,” all of which are filed concurrently herewith and incorporated by reference herein.
Provisional Applications (1)
|
Number |
Date |
Country |
|
60341289 |
Dec 2001 |
US |