Apparatus and method for instruction fetching using a multi-port instruction cache directory
First Claim
1. In an information handling system, an apparatus for fetching instructions comprising:
- a cache for storing first and second sets of addressable instructions;
instruction queues operably coupled to said cache for storing a set of fetched instructions;
fetch address selector operably coupled to said cache for selecting a fetch address and for providing said fetch address to said cache to fetch a new set of instructions;
at least one branch target calculator operably coupled to said instruction queues and to said fetch address selector for determining, in parallel, if instructions in said instruction queues are branch instructions and for providing, in parallel, target addresses of the branch instructions to said fetch address selector so that said fetch address selector can provide said cache with one of a plurality of target addresses as said fetch address; and
a directory operatively associated with said cache for selecting one of said sets from which said instructions are fetched, said directory including a plurality of input ports coupled to said branch target calculator for inputting said plurality of target addresses in parallel with said fetch address selector such that said directory is accessed prior to said fetch address selector selecting said fetch address.
1 Assignment
0 Petitions
Accused Products
Abstract
In an instruction fetch unit for an information handling system which decodes instructions, calculates target addresses of multiple branch instructions, and resolves multiple branch instructions in parallel instead of sequentially, the critical path through a multiple way set associative instruction cache is through a directory and compare circuit which selects which way instructions will be retrieved. This patch is known as the late select path. A multi-ported effective address (EA) directory is provided and is accessed prior to selection of a fetch address which fetches the next set of instructions from the cache. In this manner, the time required for the late select path can be reduced.
-
Citations
41 Claims
-
1. In an information handling system, an apparatus for fetching instructions comprising:
-
a cache for storing first and second sets of addressable instructions; instruction queues operably coupled to said cache for storing a set of fetched instructions; fetch address selector operably coupled to said cache for selecting a fetch address and for providing said fetch address to said cache to fetch a new set of instructions; at least one branch target calculator operably coupled to said instruction queues and to said fetch address selector for determining, in parallel, if instructions in said instruction queues are branch instructions and for providing, in parallel, target addresses of the branch instructions to said fetch address selector so that said fetch address selector can provide said cache with one of a plurality of target addresses as said fetch address; and a directory operatively associated with said cache for selecting one of said sets from which said instructions are fetched, said directory including a plurality of input ports coupled to said branch target calculator for inputting said plurality of target addresses in parallel with said fetch address selector such that said directory is accessed prior to said fetch address selector selecting said fetch address. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15)
-
-
16. A method for fetching instructions in an information handling system including a cache for storing first and second sets of addressable instructions, a directory operatively associated with the cache for selecting one of the sets from which the instructions are fetched, instruction queues operatively coupled to the cache for storing a set of fetched instructions, at least one branch target calculator operatively coupled to the instruction queues and a fetch address selector, said method comprising the steps of:
-
determining in parallel, in the branch target calculator, if the instructions in the instruction queues are branch instructions; calculating in parallel, in the branch target calculator, target addresses of the branch instructions; selecting, in the fetch address selector, a fetch address for fetching a new set of instructions from the cache; and accessing the directory with the target addresses prior to the fetch address selector selecting the fetch address. - View Dependent Claims (17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30)
-
-
31. A method for fetching a new instruction from a cache for storing first and second sets of instructions to be fetched in an information handling system operating at predetermined number of cycles per second and including a directory operatively associated with the cache for selecting one of the sets from which the instructions are fetched, said method comprising the steps of:
-
performing the following steps in a first portion of the cycle to determine a fetch address; a) decoding a current instruction to determine if the current instruction is a branch instruction; b) if the current instruction is a branch instruction, performing the following steps in parallel; i) calculating the target address of the branch instruction, and ii) resolving the branch instruction; c) selecting a fetch address for fetching a new instruction from the cache; and d) accessing the directory with the target address prior to completing the resolution of the branch instruction and selecting a fetch address; and fetching, using the fetch address, the new instruction from the cache during a second portion of the cycle.
-
-
32. In an information handling system, an apparatus for fetching instructions comprising:
-
(a) a cache for storing first and second sets of addressable instructions, such an instruction having a fetch address for fetching the instruction from the cache; (b) first and second instruction queues ("IQs") operably coupled to the cache for storing fetched instructions; (c) first and second branch target calculators ("BTCs") operably coupled to a corresponding one of the IQs, for calculating respective first and second branch instruction target addresses; (d) a fetch address selector ("FAS"), operably coupled to the cache and the BTCs, for providing to the cache a selected fetch address in response to the branch instruction target addresses; and (e) a directory operatively associated with said cache for selecting one of said sets from which instructions are fetched, said directory including a plurality of input ports coupled to said first and second BTCs for inputting said first and second branch instruction target addresses in parallel with said FAS such that said directory is accessed prior to said FAS selecting said fetch address. - View Dependent Claims (33, 34, 35)
-
-
36. In an information handling system, an apparatus for fetching instructions comprising:
-
(a) a cache for storing first and second sets of addressable instructions, such an instruction having a fetch address for fetching the instruction from the cache; (b) a fetch address selector ("FAS"), operably coupled to the cache, for providing to the cache a selected fetch address from a plurality of potential fetch addresses; and (c) a directory operatively associated with said cache for selecting one of said sets from which instructions are fetched, said directory including a plurality of input ports for inputting said plurality of potential fetch addresses such that said directory is accessed prior to said FAS selecting said fetch address. - View Dependent Claims (37, 38, 39, 40)
-
-
41. A method for fetching instructions in an information handling system, said method comprising the steps of:
-
storing first and second sets of addressable instructions in a cache wherein such an instruction has a fetch address for fetching the instruction from a cache; providing to the cache a selected fetch address from a plurality of potential fetch addresses; and inputting the plurality of potential fetch addresses into a directory for selecting one of the sets from which instructions are fetched such that the directory is accessed prior to providing the cache a selected fetch address.
-
Specification