Instruction cache power reduction
First Claim
1. A method for controlling an instruction cache including a least-recently-used bits array, a tag array, and a data array, comprising:
- looking up, in the least-recently-used bits array, least-recently-used bits for each of a plurality of cacheline sets in the instruction cache, where least-recently-used bits for a cacheline set indicate a least-recently-used way in that cacheline set;
determining a most-recently-used way in a designated cacheline set of the plurality of cacheline sets based on the least-recently-used bits for the designated cacheline;
looking up, in the tag array, tags for one or more ways in the designated cacheline set, wherein the looking up tags for one or more ways in the designated cacheline set comprises looking up a tag associated with the most-recently-used way prior to looking up tags in the tag array for other ways in the designated cacheline set;
looking up, in the data array, data stored in the most-recently-used way in the designated cacheline set; and
in response to determining a cache hit in the most-recently-used way based on the tag array, activating only the most-recently-used way and outputting the data stored in the most-recently-used way from the data array.
1 Assignment
0 Petitions
Accused Products
Abstract
In one embodiment, a method for controlling an instruction cache including a least-recently-used bits array, a tag array, and a data array, includes looking up, in the least-recently-used bits array, least-recently-used bits for each of a plurality of cacheline sets in the instruction cache, determining a most-recently-used way in a designated cacheline set of the plurality of cacheline sets based on the least-recently-used bits for the designated cacheline, looking up, in the tag array, tags for one or more ways in the designated cacheline set, looking up, in the data array, data stored in the most-recently-used way in the designated cacheline set, and if there is a cache hit in the most-recently-used way, retrieving the data stored in the most-recently-used way from the data array.
71 Citations
21 Claims
-
1. A method for controlling an instruction cache including a least-recently-used bits array, a tag array, and a data array, comprising:
-
looking up, in the least-recently-used bits array, least-recently-used bits for each of a plurality of cacheline sets in the instruction cache, where least-recently-used bits for a cacheline set indicate a least-recently-used way in that cacheline set; determining a most-recently-used way in a designated cacheline set of the plurality of cacheline sets based on the least-recently-used bits for the designated cacheline; looking up, in the tag array, tags for one or more ways in the designated cacheline set, wherein the looking up tags for one or more ways in the designated cacheline set comprises looking up a tag associated with the most-recently-used way prior to looking up tags in the tag array for other ways in the designated cacheline set; looking up, in the data array, data stored in the most-recently-used way in the designated cacheline set; and in response to determining a cache hit in the most-recently-used way based on the tag array, activating only the most-recently-used way and outputting the data stored in the most-recently-used way from the data array. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 21)
-
-
11. An instruction cache comprising:
-
a least-recently-used bits array; a tag array; a data array; and a cache controller configured to (1) look up, in the least-recently-used bits array, least-recently-used bits for each of a plurality of cacheline sets in the instruction cache, where least-recently-used bits for a cacheline set indicate a least-recently-used way in that cacheline set, (2) determine a most-recently-used way in a designated cacheline set of the plurality of cachelines sets based on the least-recently-used bits for the designated cacheline set, (3) look up, in the tag array, tags for one or more ways in the designated cacheline set, (4) look up, in the data array, data stored in the most-recently-used way in the designated cacheline set, and in response to a cache hit in the most-recently-used way based on the tag array, activate only the most-recently-used way and (5) output the data stored in the most-recently-used way from the data array, wherein the look up of tags for one or more ways in the designated cacheline set comprises looking up a tag associated with the most-recently-used way prior to looking up tags in the tag array for other ways in the designated cacheline set. - View Dependent Claims (12, 13, 14, 15, 16, 17)
-
-
18. A method for controlling an instruction cache including a least-recently-used bits array, a tag array, and a data array, comprising:
-
looking up, in the least-recently-used bits array, least-recently-used bits for each of a plurality of cacheline sets in the instruction cache, where least-recently-used bits for a cacheline set indicate a least-recently-used way in that cacheline set; determining a most-recently-used way in a designated cacheline set of the plurality of cacheline sets based on the least-recently-used bits for the designated cacheline; looking up, in the tag array, tags for all ways in the designated cacheline set, wherein the looking up tags for all ways in the designated cacheline set comprises looking up a tag associated with the most-recently-used way prior to looking up tags in the tag array for other ways in the designated cacheline set; looking up, in the data array, data stored in the most-recently-used way in the designated cacheline set; if there is a cache hit in the most-recently-used way based on the tag array, activating only the most-recently-used way and outputting the data stored in the most-recently-used way from the data array; if there is a cache miss in the most-recently-used way, looking up, in the tag array, tags for all ways in the designated cacheline set; looking up, in the data array, data stored in all ways in the designated cacheline set; and if there is a cache hit in any of the ways in the designated cacheline set, outputting the data in the hit way from the data array. - View Dependent Claims (19, 20)
-
Specification