A power saving cache and a method of operating a power saving cache. The
power saving cache includes circuitry to dynamically reduce the logical
size of the cache in order to save power. Preferably, a method is used to
determine optimal cache size for balancing power and performance, using a
variety of combinable hardware and software techniques. Also, in a
preferred embodiment, steps are used for maintaining coherency during
cache resizing, including the handling of modified ("dirty") data in the
cache, and steps are provided for partitioning a cache in one of several
way to provide an appropriate configuration and granularity when
resizing.