Costumo concordar que isso pertence a uma arquitetura de computadores stackexchange, não a um stackexchange de eletrônica, mas como está aqui:
@davidcary está correto.
Alguma história:
Os passeios pela tabela de páginas Intel x86 NÃO foram armazenados em cache até o P5, também conhecido como Pentium. Mais precisamente, os acessos à memória de passeio da tabela de páginas não foram armazenados em cache, ignoraram o cache. Como a maioria das máquinas até então era de gravação, elas receberam valores consistentes com o cache. Mas eles não bisbilhotaram os caches.
P6, também conhecido como Pentium Pro e AFAIK, todos os passeios subsequentes da tabela de páginas dos processadores tiveram permissão para acessar o cache e usar um valor extraído do cache. Assim, eles trabalharam com caches de write-back. (Você pode, é claro, colocar as tabelas de páginas em memória incachável, definida, por exemplo, pelos MTRRs. Mas isso é uma grande perda de desempenho, embora possa ser útil para depurar sistemas operacionais.)
A propósito, esse "acesso à memória de passeio da tabela de páginas pode acessar os caches de dados" é separado de "as entradas da tabela de páginas podem ser armazenadas (armazenadas em cache) em um Buffer de TLS de tradução da TLB". Em algumas máquinas, o TLB é chamado de "cache de tradução".
Outro problema relacionado é que os nós internos das tabelas de páginas podem ser armazenados em cache em ainda mais estruturas de dados do tipo TLB, por exemplo, o cache do PDE.
Uma diferença importante: o cache de dados é coerente e espionado. Mas os caches TLB e PDE não são espionados, ou seja, não são coerentes. A linha inferior é que, como as tabelas de páginas podem ser armazenadas em cache em TLBs e PDE não coerentes, o software deve liberar explicitamente as entradas individuais ou os grupos em massa (como todo o TLB), quando as entradas da tabela de páginas podem ter sido tão comuns. em cache são alterados. Pelo menos quando alterado de maneira "perigosa", passando de RW-> R-> I ou alterando endereços.
Eu acho que é justo dizer que toda vez que um novo tipo de cache não-coerente do tipo TLB é adicionado, algum sistema operacional é interrompido, porque havia suposições implícitas de que isso não estava sendo feito.