A cache is coupled to receive an input address and a corresponding way
prediction. The cache provides output bytes in response to the predicted
way (instead of, performing tag comparisons to select the output bytes).
Furthermore, a tag may be read from the predicted way and only partial
tags are read from the non-predicted ways. The tag is compared to the tag
portion of the input address, and the partial tags are compared to a
corresponding partial tag portion of the input address. If the tag matches
the tag portion of the input address, a hit in the predicted way is
detected and the bytes provided in response to the predicted way are
correct. If the tag does not match the tag portion of the input address, a
miss in the predicted way is detected. If none of the partial tags match
the corresponding partial tag portion of the input address, a miss in the
cache is determined. On the other hand, if one or more of the partial tags
match the corresponding partial tags portion of the input address, the
cache searches the corresponding ways to determine whether or not the
input address hits or misses in the cache.