Pergunta

Vários dos recursos Eu fui na internet têm discordam sobre como conjunto associativa cache obras .

Para segredos exemplo de hardware parecem acreditar que funciona assim:

Em seguida, a memória RAM principal é dividida em o mesmo número de blocos disponíveis em o cache de memória. Mantendo a 512 KB 4 vias exemplo associativa, a RAM principal seria dividida em 2.048 blocos, o mesmo número de blocos disponíveis dentro do cache de memória. Cada bloco de memória está ligada a um conjunto de linhas dentro do cache, assim como no cache com mapeamento direto.

http://www.hardwaresecrets.com/printpage/481/8

Eles parecem estar dizendo que cada bloco de cache (4 linhas de cache) mapeia para um determinado bloco de RAM contígua. Eles estão dizendo blocos não-contíguos de memória do sistema (RAM) não pode mapear para o mesmo bloco de cache.

Este é há imagem de como hardwaresecrets pensa que funciona http://www.hardwaresecrets.com/fullimage.php?image=7864

Contraste que com imagem do conjunto de cache associativa da Wikipédia http://upload.wikimedia.org/ wikipedia / commons / 9/93 / cache%-2Cassociative-fill both.png .

discorda de Brown com segredos hardware

Considere o que poderia acontecer se cada linha de cache tinha dois conjuntos de campos: dois os bits válidos, dois bits sujos, dois tag campos, e dois campos de dados. um conjunto de campos poderia armazenar em cache de dados para um área de memória principal, e outro para outra área que acontece para mapear a mesma linha de cache.

http://www.spsu.edu/cs/faculty/ bbrown / web_lectures / cache /

Isto é, os blocos não-contíguos de memória do sistema pode mapear para o mesmo bloco de cache.

Como são as relações entre os blocos não-contíguos na memória do sistema e blocos de cache criados. Li algures que essas relações são baseadas em avanços de cache, mas não consigo encontrar qualquer informação sobre outros do que eles existem passos de cache.

Quem está certo? Se striding é realmente usado, como é caminhando trabalho e eu tenho o nome técnico correto? Como faço para encontrar o passo para um sistema particular? ele é baseado no sistema de paginação? Pode alguém me aponte para um URL que explica N-way cache associativo em grande detalhe?

Também ver: http://www.cs.umd.edu/ classe / sum2003 / cmsc311 / Notas / Memória / set.html

Foi útil?

Solução

Quando me ensinar arquitetura de memória cache para os meus alunos, eu começo com um cache direct-mapeada. Uma vez que é entendido, você pode pensar em N-way set caches associativas como blocos paralelos de cache de direct-mapeada. Para entender que ambos os números podem ser correto, você precisa primeiro entender o propósito de caches set-assoc.

Eles são projetados para trabalho em torno do problema de 'aliasing' em um cache direct-mapeada, onde vários locais de memória pode mapear para uma entrada de cache específico. Isto é ilustrado na figura Wikipedia. Assim, em vez de desalojar uma entrada de cache, podemos usar um cache de N-way para armazenar os outros locais de memória 'alias'.

Com efeito, o diagrama de segredos de hardware seria correcto assumir a ordem de substituição é de tal modo que o primeiro bloco de memória principal é mapeado para maneira-1 e, em seguida, o segundo bloco para vias 2 e assim por diante assim por diante. No entanto, é igualmente possível ter o primeiro pedaço de principal propagação de memória ao longo de várias maneiras.

Hope esta explicação ajude!

PS: Contígua posições de memória são necessários apenas para uma única linha de cache, explorando localidade espacial. Quanto à última parte da sua pergunta, eu acredito que você pode ser confuso vários conceitos diferentes.

Outras dicas

A política de substituição decide onde na cache uma cópia de um especial entrada de memória principal vai. Se a política de substituição é livre para escolher qualquer entrada no cache para manter a cópia, o cache é chamado totalmente associativo. No outro extremo, se cada entrada no principal memória pode ir em apenas um lugar no cache, o cache é direto mapeada. Muitos caches implementar uma solução de compromisso em que cada entrada no principal memória pode ir para qualquer um dos lugares N no cache, e são descritas como conjunto N-modo associativo

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