Patent ID: 8631206

Claim:
A set-associative cache comprising: a data cache configured to provide a plurality of cache lines in response to a set index of a virtual address, wherein each of the cache lines corresponds to one of a plurality of ways of the set-associative cache; a translation lookaside buffer configured to provide one of a plurality of way selections in response to (i) the set index of the virtual address and (ii) a virtual tag of the virtual address, wherein each of the way selections corresponds to one of the ways of the set-associative cache, and wherein the translation lookaside buffer comprises: a lookaside module configured to provide a hit vector in response to the virtual tag of the virtual address; and a way module configured to store an array of way selections, wherein a first dimension of the array is indexed by the hit vector, wherein a second dimension of the array is indexed by the set index of the virtual address, and wherein the way module is further configured to retrieve the one of the plurality of way selections from the array (i) in response to each of the set index of the virtual address and the hit vector, and (ii) independently of a physical tag of a physical address corresponding to the virtual address; and a way multiplexer configured to select one of the cache lines provided by the data cache in response to the one of the plurality of way selections retrieved by the way module.