A virtually indexed cache can improve performance by allowing cache lookup and address translation to occur in parallel, thus reducing processor cycle time. Unlike physically indexed caches, virtually indexed caches create consistency problems becasue a physical address may be represented in more than one cache line when it has been accessed through more than one virtual address. Write-back virtually indexed caches create additional inconsistencies because memory may become stale with respect to the cache.
In this paper we examine the problem of consistency management for a virtually indexed write-back cache. We assume that the hardware does not support intra-cache consistency. We present a model and software implementation strategy for maintaining consistency with vitrtually indexed caches.
We present measurements from an implementation of this model on the HP 9000 Series 700 in the context of the Mach operating system. Our mearsurements show that a virtually indexed cache can be managed with nearly the same cost as that required to manage a physically indexed one, even when used by a virtual memory system that encourages and exploits sharing.