Pergunta

poderia L1 / L2 linha de cache cada cache várias cópias da palavra dados memória principal?

Foi útil?

Solução

É possível que a memória principal é em um cache mais de uma vez. Obviamente, isso é verdade e uma ocorrência comum para máquinas com múltiplos processadores. Mas mesmo em máquinas de processamento uni, isso pode acontecer.

Considere uma CPU Pentium que tem um cache L1 de instruções de divisão / dados. Instruções só ir para a I-cache, os dados só para o D-cache. Agora, se o sistema operacional permite que o código de auto modificar, a mesma memória poderia ser carregado em ambos os fotogramas I e D-cache, uma vez que os dados, uma vez como instruções. Agora você tem que os dados duas vezes no cache L1. Portanto, um CPU com tal arquitetura de cache uma divisão deve empregar um protocolo de cache coerência para evitar corrida condições / corrupção.

Outras dicas

Não -. Se ele já está no cache do MMU irá usar isso em vez de criar outra cópia

Cada esconderijo basicamente armazena algum pequeno subconjunto de toda a memória. Quando CPU precisa de uma palavra de memória que ele primeiro vai para L1, em seguida, para L2 cache e assim por diante , antes que a memória principal é verificado . Assim, uma palavra de memória particular pode estar em L2 e L1 em ??simultâneo, mas não pode ser armazenado duas vezes no L1, porque isso não é necessário.

Sim, pode. cópia L1 é atualizado, mas não foi liberado para L2. Isso só acontece se L1 e L2 são caches não exclusivos. Isto é evidente para uni-processadores, mas é ainda mais para multi-processadores que normalmente têm os seus próprios caches L1 para cada núcleo.

Tudo depende da arquitetura de cache -. Se garante qualquer tipo de coisa

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top