Coerência de cache: protocolos MESI × MOESI
Gabarito: letra B. A principal diferença entre os protocolos está no tratamento de linhas de cache modificadas que ainda não foram escritas na memória principal. O MOESI adiciona o estado Owned (O), que permite que um cache forneça seu dado modificado diretamente a outro cache sem necessidade de write-back imediato. No MESI, uma linha em estado Modified, ao ser solicitada por outro núcleo, deve ser escrita na memória principal antes de ser compartilhada.
A banca testa o conhecimento dos cinco estados (MESI vs. MOESI = 4 estados vs. 5) e, sobretudo, a utilidade prática do estado Owned.
Protocolo | Estados | Tratamento de linha modificada (sem write-back) | Transferência entre caches |
|---|
MESI | 4 (Modified, Exclusive, Shared, Invalid) | Deve ser escrita na memória principal antes de fornecer a outro núcleo | Exige write-back imediato |
MOESI | 5 (Modified, Owned, Exclusive, Shared, Invalid) | Estado Owned permite manter linha modificada sem write-back imediato | Permite transferência direta entre caches |
Alternativa A — ❌ Incorreta
Afirma que no MESI dados permanecem em estado compartilhado mesmo após modificações locais, com atualizações periódicas. Isso é falso: o MESI usa invalidação em escritas – uma linha em estado Shared deve ser invalidada antes de ser modificada. O MOESI também usa invalidação. A descrição está invertida.
Alternativa B — ✅ Correta ⟵ GABARITO
Descreve exatamente a diferença central:
No MESI, uma linha em Modified deve ser escrita na memória principal (write-back) antes que seu conteúdo possa ser transferido a outro núcleo.
No MOESI, o estado Owned permite que o cache mantenha a linha modificada e a transfira diretamente a outro cache, sem write-back imediato. O cache doador continua responsável pela escrita final na memória.
Alternativa C — ❌ Incorreta
Confunde os mecanismos. No MESI, uma escrita em bloco modificado invalida as outras cópias (correto), mas no MOESI o núcleo que sofre invalidação não mantém cópia exclusiva modificável – ele perde a cópia (vai para Invalid). O MOESI também envia mensagens de invalidação.
Alternativa D — ❌ Incorreta
Afirma que MESI e MOESI têm comportamento equivalente quanto a dados modificados, ambos exigindo escrita imediata na memória antes de qualquer transferência entre caches. Isso é falso: o MOESI permite transferência entre caches sem write-back imediato, graças ao estado Owned. A diferença não é só no número de estados, mas no tratamento de dados modificados.
Gabarito: letra B