Misc
Virtual Indexed Caches
Did you know, that L1-caches usually are virtually indexed?
Using virtual addresses, for each memory access an address translation is necessary to obtain a physical address from the virtual address. This wastes time at each L1-cache access in case the cache lines are indexed with physical addresses. By using the virtual address as index instead, TLB-lookup and address translation can be avoided.
Nevertheless, virtual indexed caches have serious drawbacks handling synonyms (two virtual addresses pointing to the same physical location) and homonyms (remapping a virtual address to a different physical location). Special care for such cases is necessary either in hard- or in software.
Further information can be found in Virtual-Address Caches.