>> Tecnologia Eletrônica >  >> Telefones >> Secretárias Eletrônicas

Como a MMU Traduz Endereços Lógicos para Físicos

Tradução de Endereços pela Unidade de Gerenciamento de Memória (MMU)

A MMU habilita memória virtual mapeando endereços lógicos (virtuais) de cada processo para frames de RAM físicos.

Passo a Passo (Estilo x86 Tabela de Páginas Multi-nível)

  1. Divisão do Endereço Lógico (ex.: 32-bit, páginas 4 KB):
    • Índice do Diretório de Páginas (10 bits) → seleciona PDE no Diretório de Páginas (registrador CR3).
    • Índice da Tabela de Páginas (10 bits) → seleciona PTE na Tabela de Páginas.
    • Offset da Página (12 bits) → offset de byte dentro do frame de 4 KB.
  2. Busca no Diretório de Páginas: MMU lê PDE. Se Present=0 → Page Fault (SO carrega página do disco).
  3. Busca na Tabela de Páginas: MMU lê PTE. Se Present=0 → Page Fault.
  4. Endereço do Frame Físico: PTE contém Número de Página Física (PPN) (20 bits superiores).
  5. Combinação: Endereço Físico = (PPN << 12) | Offset da Página.
  6. Cache TLB: Translation Lookaside Buffer cacheia mapeamentos recentes (VPN → PPN) para pular page-walk em hits (~99% taxa de acerto).

Estruturas-Chave

  • CR3 (PDBR): Endereço físico do Diretório de Páginas do processo atual.
  • Flags PDE / PTE: Present, Read/Write, User/Supervisor, Write-Through, Cache-Disable, Accessed, Dirty, Global, NX (No-Execute).
  • Manipulador de Page Fault (SO): Aloca frame, atualiza PTE, retoma instrução.

Extensões

  • PAE (36-bit): 3 níveis, páginas grandes 2 MB/4 MB.
  • x86-64 (4 níveis): PML4 → PDPT → PD → PT → página 4 KB (virtual 48-bit).
  • ARMv8: Similar 4 níveis (TTBR0/1), grânulos 4 KB/16 KB/64 KB.

Resultado: Cada processo vê espaço de endereços contíguo 0–4 GB (32-bit) ou 0–256 TB (48-bit), isolado e maior que RAM física.