Microprocessor employing local caches for functional units to store memory operands used by the functional units
DCFirst Claim
1. A microprocessor comprising:
- a first functional unit configured to execute instructions, wherein said first functional unit, responsive to a first plurality of address operands specified by a first instruction, is configured to generate a first memory address corresponding to a first memory operand of said first instruction;
a second functional unit configured to execute instructions, wherein said second functional unit, responsive to a second plurality of address operands specified by a second instruction, is configured to generate a second memory address corresponding to a second memory operand of said second instruction;
a first local cache coupled to said first functional unit, wherein said first functional unit is configured to access said first local cache using said first memory address in order to retrieve said first memory operand corresponding to said first instruction; and
a second local cache coupled to said second functional unit, wherein said second functional unit is configured to access said second local cache using said second memory address in order to retrieve said second memory operand corresponding to said second instruction.
1 Assignment
Litigations
1 Petition
Reexamination
Accused Products
Abstract
A microprocessor employs a local cache for each functional unit, located physically close to that functional unit. The local caches are relatively small as compared to a central cache optionally included in the microprocessor as well. Because the local caches are small, internal interconnection delays within the local caches may be less than those experienced by the central cache. Additionally, the physical proximity of the local cache to the functional unit which accesses the local cache reduces the interconnect delay between the local cache and the functional unit. If the memory operand hits in a remote cache (either a different local cache or the central cache), the cache line containing the memory operand is transferred to the local cache experiencing the miss. According to one embodiment including multiple symmetrical functional units, the local caches coupled to the symmetrical functional units are restricted to storing different cache lines from each other. For example, a number of bits of the tag address may be used to select which of the local caches is to store the corresponding cache line. A data prediction scheme for predicting the functional unit to which a given instruction should be dispatched may be implemented, wherein the prediction is formed based upon the cache line storing the memory operand during a previous execution of the given instruction.
51 Citations
28 Claims
-
1. A microprocessor comprising:
-
a first functional unit configured to execute instructions, wherein said first functional unit, responsive to a first plurality of address operands specified by a first instruction, is configured to generate a first memory address corresponding to a first memory operand of said first instruction; a second functional unit configured to execute instructions, wherein said second functional unit, responsive to a second plurality of address operands specified by a second instruction, is configured to generate a second memory address corresponding to a second memory operand of said second instruction; a first local cache coupled to said first functional unit, wherein said first functional unit is configured to access said first local cache using said first memory address in order to retrieve said first memory operand corresponding to said first instruction; and a second local cache coupled to said second functional unit, wherein said second functional unit is configured to access said second local cache using said second memory address in order to retrieve said second memory operand corresponding to said second instruction. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16)
-
-
17. A method for accessing memory operands in a microprocessor, the method comprising:
-
generating a first address corresponding to a first memory operand of a first instruction in a first functional unit of said microprocessor responsive to a first plurality of address operands specified by said first instruction; generating a second address corresponding to a second memory operand of a second instruction in a second functional unit responsive to a second plurality of address operands specified by said second instruction; accessing a first local cache coupled to said first functional unit with said first address in order to locate said first memory operand; and accessing a second local cache coupled to said second functional unit with said second address in order to locate said second memory operand.
-
-
18. A computer system comprising:
-
a microprocessor including; a first functional unit configured to execute instructions, wherein said first functional unit, responsive to a first plurality of address operands specified by a first instruction, is configured to generate a first memory address corresponding to a first memory operand of said first instruction; a second functional unit configured to execute instructions, wherein said second functional unit, responsive to a second plurality of address operands specified by a second instruction, is configured to generate a second memory address corresponding to a second memory operand of said second instruction; a first local cache coupled to said first functional unit, wherein said first functional unit is configured to access said first local cache using said first memory address in order to retrieve said first memory operand corresponding to said first instruction; and a second local cache coupled to said second functional unit, wherein said second functional unit is configured to access said second local cache using said second memory address in order to retrieve said second memory operand corresponding to said second instruction; and an input/output (I/O) device coupled to said microprocessor and to another computer system, wherein said I/O device is configured to communicate between said computer system and said another computer system. - View Dependent Claims (19)
-
-
20. A computer system comprising:
-
a microprocessor including; a first functional unit configured to execute instructions; a second functional unit configured to execute instructions; a first local cache coupled to said first functional unit, wherein said first functional unit is configured to access said first local cache in order to retrieve a first memory operand corresponding to a first instruction; a second local cache coupled to said second functional unit, wherein said second functional unit is configured to access said second local cache in order to retrieve a second memory operand corresponding to a second instruction; and a global tags and control unit coupled to said first local cache and said second local cache, wherein said global tags and control unit is configured select one of said first local cache and said second local cache to store a particular cache line in response to a particular address corresponding to said particular cache line; and an input/output (I/O) device coupled to said microprocessor and to another computer system, wherein said I/O device is configured to communicate between said computer system and said another computer system. - View Dependent Claims (21)
-
-
22. A method for dispatching an instruction to one of a first functional unit configured to execute said instruction and a second functional unit configured to execute said instruction, said first functional unit being coupled to a first local cache configured to store memory operands and said second functional unit being coupled to a second local cache configured to store memory operands, the method comprising:
-
storing a particular memory operand into one of said first local cache and said second local cache responsive to one or more bits of a corresponding memory address of said particular memory operand; predicting which one of said first local cache and said second local cache is storing a first memory operand corresponding to said instruction; dispatching said instruction to said first functional unit if said first local cache is predicted; and dispatching said instruction to said second functional unit if said second local cache is predicted. - View Dependent Claims (23, 24)
-
-
25. A microprocessor comprising:
-
a first functional unit configured to execute instructions; a second functional unit configured to execute instructions; a first local cache coupled to said first functional unit, wherein said first functional unit is configured to access said first local cache in order to retrieve a first memory operand corresponding to a first instruction; a second local cache coupled to said second functional unit, wherein said second functional unit is configured to access said second local cache in order to retrieve a second memory operand corresponding to a second instruction; and a global tags and control unit coupled to said first local cache and said second local cache, wherein said global tags and control unit is configured select one of said first local cache and said second local cache to store a particular cache line in response to a particular address corresponding to said particular cache line. - View Dependent Claims (26, 27, 28)
-
Specification