To the best of my knowledge, page tables would store virtual addresses, residency bit and their corresponding physical addresses. Given that the CPU caches, L1, L2, L3 etc cache data from main memory into the cache, during load and store operations, can these caches actually cache entire page tables? Personally, I do not think so, because the L1, L2, L3 cache data from main memory into the cache using addresses from the Memory Address Register and should not be able to cache implicit virtual addresses. Even if it does, how do we tell which entry in the cache is a main memory data block or a virtual address? I hope I am not confusing myself here.
I have checked stack overflow but haven't found an answer to this question