Claims
- 1. In a computer system that includes decode logic responsive to encountered instructions having addresses, a branch prediction device comprising:
- a first level branch prediction cache (BPC) having a first number N1 of lines storing prediction information on up to N1 previously encountered branch instructions, each line in said first level BPC being configured to store an entry providing prediction information, said first level BPC being responsive to a first set of address bits of an encountered instruction, and enabling a given first level BPC entry to be output in the event that said first set of address bits and the given first level BPC entry satisfy a predetermined condition; and
- a second level BPC having a second number N2 of lines storing prediction information on up to N2 previously encountered branch instructions, each line in said second level BPC being configured to store an entry providing prediction information, said second level BPC being responsive to a second set of address bits of the encountered instruction and enabling a second level BPC entry to be output for use in the event that said predetermined condition is not met.
- 2. The branch prediction device of claim 1, wherein:
- said first level BPC is fully associative; and
- said second level BPC is direct mapped.
- 3. The branch prediction device of claim 1 wherein N1 is less than N2.
- 4. The branch prediction device of claim 1, wherein said first set of address bits includes a first subset of address bits from an input program counter (PC) containing the address of the encountered instruction, and said second set of address bits includes a second subset of address bits from the input PC.
- 5. The branch prediction device of claim 1 wherein said second level BPC enables a second level BPC entry to be output in response to said second set of address bits regardless of whether said predetermined condition is met.
- 6. The branch prediction device of claim 1, wherein said prediction information stored in each line of said first level BPC comprises:
- an address of a previously encountered branch instruction;
- a full target address to which said previously encountered branch instruction last branched; and
- target instruction information starting at said target address.
- 7. The branch prediction device of claim 6, wherein said prediction information stored in each line of said first level BPC further comprises branch history information representing the direction taken during at least one previous execution of said previously encountered branch instruction.
- 8. The branch prediction device of claim 6, wherein said target instruction information includes a plurality of instruction bytes.
- 9. In a computer system that includes decode logic responsive to encountered instructions having addresses, a branch prediction device comprising:
- a first level branch prediction cache (BPC) having a first number N1 of lines storing prediction information on up to N1 previously encountered branch instructions, each line in said first level BPC being configured to store an entry providing prediction information, said first level BPC being responsive to a first set of address bits of an encountered instruction, and including a first associative memory, said first associative memory enabling a given first level BPC entry to be output in the event that said first set of address bits results in a match associated with said given first level BPC entry; and
- a second level BPC having a second number N2 of lines storing prediction information on up to N2 previously encountered branch instructions, each line in said second level BPC being configured to store an entry providing prediction information, said second level BPC being responsive to a second set of address bits of the encountered instruction, and including a second memory, said second memory enabling a second level BPC entry to be output for use in the event that said first set of address bits does not result in a match associated with any first level BPC entry.
- 10. The branch prediction device of claim 9, wherein said prediction information stored in each line of said first level BPC comprises:
- an address of a previously encountered branch instruction;
- a full target address to which said previously encountered branch instruction last branched; and
- target instruction information starting at said target address; and
- wherein said target instruction information is coupled to said decode logic subsequent to said match associated with said given first level BPC entry.
- 11. The branch prediction device of claim 10, wherein said prediction information stored in each line of said first level BPC further comprises branch history information representing the direction taken during at least one previous execution of said previously encountered branch instruction.
CROSS REFERENCE TO RELATED APPLICATIONS
This is a continuation of Ser. No. 08/270,855, filed Jul. 5, 1994, now U.S. Pat. No. 5,515,518, which is a continuation of Ser. No. 954,441, filed Sep. 30, 1992, now U.S. Pat. No. 5,327,547, which is a continuation of Ser. No. 844,995, filed Mar. 2, 1992, now U.S. Pat. No. 5,163,140, which is a continuation of Ser. No. 485,306, filed Feb. 26, 1990, abandoned.
US Referenced Citations (26)
Non-Patent Literature Citations (3)
Entry |
David R. Stiles et al., "Pipeline Control for a Single Cycle VLSI Implementation of a Complex Instruction Set Computer," Computer Society of the IEEE, pp. 504-508. |
A. Thampy Thomas, "A Single cycle VLSI CISC-Based Workstation: System Overview and Performance Characteristics," Computer Society of the IEEE, pp. 500-503 (1989). |
Atig Raza, "Technology Constraints on VLSI Processor Implementation," Computer Society of the Thirty-Fourth IEEE, pp. 509-512. |
Continuations (4)
|
Number |
Date |
Country |
Parent |
270855 |
Jul 1994 |
|
Parent |
954441 |
Sep 1992 |
|
Parent |
844995 |
Mar 1992 |
|
Parent |
485306 |
Feb 1990 |
|