Electrical computers and digital processing systems: processing – Processing control – Branching
Reexamination Certificate
2000-12-29
2002-12-10
Zimmerman, Mark (Department: 2671)
Electrical computers and digital processing systems: processing
Processing control
Branching
C712S216000, C712S242000
Reexamination Certificate
active
06493820
ABSTRACT:
BACKGROUND OF THE INVENTION
1. Technical Field of the Invention
The present invention relates to processors and, more particularly, to processors that process dependent threads concurrently.
2. Background Art
Current superscaler processors, such as a microprocessor, perform techniques such as branch prediction and out-of-order execution to enhance performance. Processors having out-of-order execution pipelines execute certain instructions in a different order than the order in which the instructions were fetched and decoded. Instructions may be executed out of order with respect to instructions for which there are not dependencies. Out-of-order execution increases processor performance by preventing execution units from being idle merely because of program instruction order. Instruction results are reordered after execution.
The task of handling data dependencies is simplified by restricting instruction decode to being in-order. The processors may then identify how data flows from one instruction to subsequent instructions through registers. To ensure program correctness, registers are renamed and instructions wait in reservation stations until their input operands are generated, at which time they are issued to the appropriate functional units for execution. The register renamer, reservation stations, and related mechanisms link instructions having dependencies together so that a dependent instruction is not executed before the instruction on which it depends. Accordingly, such processors are limited by in-order fetch and decode.
When the instruction from the instruction cache misses or a branch is mispredicted, the processors have either to wait until the instruction block is fetched from the higher level cache or memory, or until the mispredicted branch is resolved, and the execution of the false path is reset. The result of such behavior is that independent instructions before and after instruction cache misses and mispredicted branches cannot be executed in parallel, although it may be correct to do so.
Multithreading processors such as shared resource multithreading processors and on-chip multiprocessor (MP) processors have the capability to process and execute multiple threads concurrently. The threads that these processors process and execute are independent of each other. For example, the threads are either from completely independent programs or are from the same program but are specially compiled to create threads without dependencies between threads. However, these processors do not have the ability to concurrently execute different threads from the same program that may have dependencies. The usefulness of the multithreading processors is thereby limited.
Accordingly, there is a need for multithreading processors that have the ability to concurrently execute different threads from the same program where there may be dependencies among the threads.
SUMMARY OF THE INVENTION
In one embodiment of the invention, a processor includes an execution pipeline to concurrently execute at least portions of threads, wherein at least one of the threads is dependent on at least another one of the threads. The processor also includes detection circuitry to detect speculation errors in the execution of the threads.
In another embodiment, the processor includes thread management logic to control dynamic creation of threads from a program.
REFERENCES:
Micro-threading: A New Approach to Future RISC by Chris Jesshope and Bing Luo; Computer Architecture Conference 2000.*
Datarol: A massively parallel architecture for functional language by Makoto Amamiya et al. Parallel and distributed processing 1990.
Akkary Haitham
Chow Kingsum
Aldous Alan K.
Intel Corporation
Monestime Mackly
Zimmerman Mark
LandOfFree
Processor having multiple program counters and trace buffers... does not yet have a rating. At this time, there are no reviews or comments for this patent.
If you have personal experience with Processor having multiple program counters and trace buffers..., we encourage you to share that experience with our LandOfFree.com community. Your opinion is very important and Processor having multiple program counters and trace buffers... will most certainly appreciate the feedback.
Profile ID: LFUS-PAI-O-2951020