Claims
- 1. A method for processing a branch instruction included in a program stored in memory, the method performed by a superscalar processor including a fetch stage for fetching of a plurality of sequential instructions from said program, a branch prediction mechanism for predicting whether a conditional branch instruction in a fetched plurality of instructions is taken and directing fetching along a predicted path, a decode stage for parallel decoding of a plurality of instructions, an execution stage for parallel execution of a plurality of instructions, and a retirement stage for writing result data for said plurality of instructions into logical registers of the processor, said method comprising the steps of:
- fetching a continuous flow of sequential instructions, in program order, included in the program stored in memory, with said plurality including a conditional branch instruction and at least one non-branching instruction following said conditional branch instruction, with a value of a branch condition determining whether a conditional branch is taken or not taken;
- predicting, prior to decoding, a predicted value of said branch condition;
- beginning decoding said plurality of instructions in parallel in a single clock cycle to generate microcode, with said microcode specifying logical destination locations for result data and including control information for executing said non-branching instruction and said conditional branch instruction;
- utilizing said microcode for executing said non-branching and conditional branch instructions in parallel in a single clock;
- comparing a value of an actual branch condition to said predicted branch condition, and, if said values are not the same:
- preventing retirement of result data resulting from the execution of said non-branching instruction following said conditional branch instruction; and
- redirecting fetching of instructions following said conditional branch instruction along a correct path.
Parent Case Info
This application is a division of and claims the benefit of U.S. application Ser. No. 08/959,643, filed Oct. 28, 1997, which is a continuation of U.S. application Ser. No. 08/710,620, filed Sep. 20, 1996, now U.S. Pat. No. 5,752,064, which is a continuation of U.S. application Ser. No. 08/483,661, filed Jun. 7, 1995, now U.S. Pat. No. 5,628,024, which is a division of U.S. application Ser. No. 08/300,815 now U.S. Pat. No. 5,574,941, filed Sep. 2, 1994, which is a continuation of U.S. application Ser. No. 07/890,299, filed May 27, 1992, now U.S. Pat. No. 5,390,355, which is a continuation of U.S. application Ser. No. 07/356,170, abandoned for FWC, filed May 24, 1989, the disclosures of which are incorporated herein by reference.
US Referenced Citations (23)
Foreign Referenced Citations (1)
Number |
Date |
Country |
0 071 028 |
Sep 1983 |
EPX |
Divisions (2)
|
Number |
Date |
Country |
Parent |
959643 |
Oct 1997 |
|
Parent |
300815 |
Sep 1994 |
|
Continuations (4)
|
Number |
Date |
Country |
Parent |
710620 |
Sep 1996 |
|
Parent |
483661 |
Jun 1995 |
|
Parent |
890299 |
May 1992 |
|
Parent |
356170 |
May 1989 |
|