Electrical computers and digital processing systems: processing – Processing control – Generating next microinstruction address
Reexamination Certificate
1998-12-21
2001-03-20
Donaghue, Larry D. (Department: 2154)
Electrical computers and digital processing systems: processing
Processing control
Generating next microinstruction address
C712S244000, C712S245000
Reexamination Certificate
active
06205544
ABSTRACT:
FIELD OF THE INVENTION
This invention relates generally to processor instructions, and more particularly to an architecture in which these instructions are decomposed into separate branch and sequential code sections.
BACKGROUND OF THE INVENTION
Many techniques have been introduced in processor technology to improve the execution performance of code by processors. One such category of techniques that provide simultaneous, or parallel, processing within a computer is known as pipelining. It refers to overlapping operations by moving data or instructions into a conceptual pipe with all stages of the pipe processing simultaneously. For example, while one instruction is being executed, the computer is decoding the next instruction.
With techniques such as pipelining, an issue that can affect performance is the treatment of branches within code. For example, when an execution engine of a processor reaches a branch instruction within the code, it must decide whether to stop all processing until that branch has been evaluated, or continue on one path or another of the branch. Such issues have been resolved to some extent by various techniques called branch prediction. In branch prediction, a given path of the prediction is initially executed in a speculative manner, until it can be determined that the particular path is indeed the correct path. If it is, processing can continue; otherwise, however, the initial execution is wasted.
Thus, during the execution of a program, the execution engine is rarely surprised by the arrival at a branch. However, once a basic block of code is entered, every instruction in that basic block is enabled for execution. Unfortunately, since branches tend to exist at the bottom of basic blocks, the engine must fetch all intervening sequential (that is, non-branch) instructions before encountering the branch.
One particular type of branch prediction involves the insertion of additional hint instructions in the basic block of code. These additional instructions are problematic, however.
The latency at which these instructions take effect, for example, may vary with the execution engine such that their position in the code should vary also. For these and other reasons, there is a need for the present invention.
SUMMARY OF THE INVENTION
The invention provides for the decomposition of instructions into separate sequential and branch instruction code sections. In one embodiment, a system includes a first store to store a first code section including only branch instructions, and a second store to store a second code section including only sequential instructions. In another embodiment, the system also includes a processor having a first engine to process the branch instructions, and a second engine to process the sequential instructions.
REFERENCES:
patent: Re. 35794 (1998-05-01), Johnson
patent: 4991080 (1991-02-01), Emma et al.
patent: 5485629 (1996-01-01), Dulong
patent: 5588118 (1996-12-01), Mandava et al.
patent: 5805878 (1998-09-01), Rahman et al.
patent: 0284364 (1988-09-01), None
patent: 0401992 (1990-12-01), None
patent: 0463977 (1992-01-01), None
Mills Jack D.
Wilkerson Christopher B.
Donaghue Larry D.
Intel Corporation
Schwegman Lundberg Woessner & Kluth P.A.
LandOfFree
Decomposition of instructions into branch and sequential... does not yet have a rating. At this time, there are no reviews or comments for this patent.
If you have personal experience with Decomposition of instructions into branch and sequential..., we encourage you to share that experience with our LandOfFree.com community. Your opinion is very important and Decomposition of instructions into branch and sequential... will most certainly appreciate the feedback.
Profile ID: LFUS-PAI-O-2435298