Uma introdução geral à coerência de cache
Resumo: O conceito de coerência de cache pode ser relativamente novo para você, mas é um conceito de campo de computador relativamente importante. Portanto, hoje, esta página lhe dará uma introdução geral à coerência do cache.
Índice
Visão geral
Na arquitetura do computador, a coerência do cache é a consistência dos dados de recursos compartilhados, que são eventualmente armazenados em vários caches locais. Podem ocorrer problemas com dados incoerentes quando os clientes mantêm caches de recursos de memória comuns, especialmente comuns para CPUs em sistemas de multiprocessamento.
Cada processador possui uma memória cache separada em um sistema multiprocessador de memória compartilhada. É provável que haja muitas cópias dos dados compartilhados: uma cópia na memória primária e uma no cache local de cada processador solicitante.
Se uma das cópias dos dados for alterada, as outras cópias devem refletir a alteração. A coerência do cache é uma disciplina e garante que as alterações nos valores de operandos (dados) compartilhados se propaguem prontamente por todo o sistema.
A parte a seguir lista os requisitos para coerência do cache.
- Propagação de gravação: As alterações de dados em qualquer cache devem ser propagadas para outras cópias no cache equivalente.
- Serialização de transações: Todos os processadores devem visualizar leituras / gravações em um único local de memória na mesma ordem.
Teoricamente, a coerência pode ser implementada na granularidade de carga / armazenamento. No entanto, na prática, geralmente é executado na granularidade do bloco de cache.
Definição
A coerência define o comportamento de leitura e gravação em um único local de endereço. Um tipo de dado que aparece simultaneamente em diferentes memórias cache é chamado de coerência de cache. Também é chamada de memória global em alguns sistemas.
Em um sistema multiprocessador, mais de um processador armazenou em cache uma cópia do local de memória X. Para obter coerência de cache, é necessário atender às seguintes condições.
- Quando o processador P lê a localização X após a gravação pelo mesmo processador Pto X e a gravação em X por outro processador não aparece entre a instrução de gravação e leitura de P, X deve sempre retornar um valor escrito por P.
- Quando o processador P1 lê a localização X, outro processador grava de P2 em X, e qualquer outro processador grava em X ocorre entre dois acessos, e as leituras e gravações são suficientemente separadas. X deve sempre retornar um valor escrito por P2.Esta condição define o conceito de uma visão coerente da memória. A propagação de gravações em locais de memória compartilhada garante que todos os caches tenham uma visão coerente da memória. Se o processador P1 lê o valor antigo de X, podemos dizer que a memória é incoerente mesmo depois que P2 é escrito.
As condições acima atendem às condições de propagação de gravação necessárias para a coerência do cache. Mas eles não são adequados porque não atendem aos critérios de serialização de transações.
Mecanismos de coerência
Existem dois mecanismos mais comuns para garantir a coerência:bisbilhotando e baseado em diretório, cada um com suas vantagens e desvantagens. Se houver largura de banda suficiente disponível, os protocolos baseados em Snooping tendem a ser mais rápidos porque todas as transações são solicitações / respostas que todos os processadores veem.
A desvantagem é que a espionagem não tem escalabilidade. Cada solicitação deve ser transmitida para todos os nós do sistema, o que significa que conforme o sistema cresce, o tamanho do barramento e a largura de banda que ele fornece devem aumentar.
Por outro lado, os diretórios tendem a ter latência mais longa, com três solicitações / encaminhamentos / respostas de salto. No entanto, os diretórios usam muito menos largura de banda porque as mensagens são ponto a ponto, e não transmitidas. Como resultado, muitos sistemas grandes adotam esse tipo de coerência de cache.
Protocolos de coerência
O protocolo de consistência aplica a consistência do cache em sistemas multiprocessadores. O objetivo é garantir que dois clientes não vejam valores diferentes nos mesmos dados compartilhados.
O protocolo deve atender às demandas básicas de coerência, adaptadas aos sistemas ou aplicativos de destino.
Os protocolos também podem ser categorizados como snoopy ou baseados em diretório. Normalmente, os primeiros sistemas adotavam protocolos baseados em diretório, onde o diretório rastreia dados compartilhados e compartilhadores. As solicitações de transação são enviadas a todos os processadores em um protocolo snoopy. Todos os processadores monitoram as solicitações e respondem apropriadamente.
Artigo Anterior
[2022] Best Watermark Software On Windows Resumo: O conceito de coerência de cache pode ser relativamente novo para você, mas é um conceito relativamente importante no campo do computador. Então, hoje, isso ...Artigo seguinte
Melhor software de OCR online no Windows / iOS / Android Resumo: O conceito de coerência de cache pode ser relativamente novo para você, mas é um conceito relativamente importante no campo do computador. Então, hoje, isso ...Sobre a recuperação de dados Bitwar
3 etapas para recuperar mais de 500 tipos de documentos, fotos, vídeos, áudios e arquivos excluídos, formatados ou perdidos de vários cenários de perda de dados.
Saber mais