ARQUITETURAS DE COMPUTADORES II
Integridade de Dados em
Memórias Cache
Prof. César Augusto M. Marcon
2 / 13
Integridade dos Dados na Cache
• Problema
1.
2.
3.
4.
5.
Ocorre miss
Endereço desejado foi buscado no nível inferior da hierarquia de memória
Só que a cache está cheia (não há lugar para escrever este dado)
Algoritmo de substituição é acionado e uma posição é escolhida
Só que dados da posição escolhida foram alterados e não podem ser
simplesmente descartados
• Motivo
– Escrita efetuada apenas no nível da cache  as cópias nos outros níveis
não estão atualizadas
• Perguntas
– Como saber que os dados foram alterados?
– Como salvar essas alterações?
– Em que momento salvar as informações?
• Técnicas para manter a Integridade dos dados
– Write-through
– Write-back
3 / 13
Write-Through (Escreve Através)
• Técnica mais antiga
– Escrevo as alterações em todos os níveis (escrevo através)
• Quando?
– Sempre que escrevo
• Quanto?
– Somente a palavra alterada
• Vantagens / Desvantagens
4 / 13
Write-Back (Escreve de Volta)
• Técnica mais recente
• Quando?
– Escreve alterações só quando necessita de substituição
• Quanto?
– Unidade do nível (bloco no caso da cache)
• Como saber quais dados foram alterados ?
– dirty-bit (bit de sujeira) no bloco
• Vantagens / Desvantagens
5 / 13
Passos para escrita e leitura na cache - Leitura
•
1.
2.
3.
4.
5.
6.
Para solucionar o problema da integridade dos dados as técnicas write-back e
write-through são incorporadas nas operações de leitura e escrita
Se hit então procura bloco desejado (Tag ou direto) e vai para 7
Requisita ao nível abaixo
// miss
Recebe bloco e procura onde colocar
Se tem posição livre na cache então escreve bloco e vai para 7
Procura bloco para substituir (usar política)
// cache cheia
Se Write-back e dirty-bit ligado, então salva bloco a ser substituído no nível
abaixo e substitui bloco
7. Lê palavra desejada no bloco
8. Repassa palavra ao processador
9. Fim
6 / 13
Passos para escrita e leitura na cache - Escrita
1.
2.
3.
4.
5.
6.
7.
Se hit procura bloco desejado (Tag ou direto) e vai para 8
Requisita ao nível mais abaixo
// Se miss
Recebe bloco
Se tem posição livre na cache então coloca bloco na posição livre e vai para 8
Procura bloco para substituir (usar política)
// cache cheia
Substitui bloco e escreve palavra
Se Write-back e o bloco a ser substituído tem dirty-bit ligado, salva bloco a ser
substituído no nível abaixo
8. Se Write-through escreve palavra no nível e também no nível abaixo (obs.: isto
acaba acontecendo de forma recursiva até a MP)
9. Se Write-back
– Se dirty-bit desligado
• Se palavra a ser escrita for diferente do valor armazenado liga dirty-bit
10. Fim
7 / 13
Estudo de Caso (Itanium Tukwila)
8 / 13
Exercícios
1. Descreva o problema de integridade de cache
2. Como saber se os dados foram alterados  Não são mais válidos?
3. Quais são as técnicas utilizadas para manter a integridade da informação?
Explique cada uma delas
4. Fale sobre as vantagens e desvantagens de cada técnica
5. Comente a necessidade de saber se os dados foram alterados com writethrough
6. Porque a técnica write-through é mais rápida que a técnica write-back quando
ocorre muito cache miss e a cache está cheia?
7. Porque a técnica write-back é adequada para a maior parte dos programas?
8. Faça uma análise de cada técnica com relação ao uso da infra-estrutura de
comunicação (ex. barramento). Qual usa mais a infra-estrutura (maior
freqüência)? Qual tem a maior carga de acesso concentrada na infra-estrutura?
9 / 13
Exercícios
9. Dado o algoritmo para implementar a técnica write-back, descrito abaixo,
responda: (a) Para que buscar dados do nível mais baixo, quando ocorre miss
na operação de escrita, se os dados serão escritos novamente? (b) Para que
buscar para escrever por cima? (c) Porque só escrever uma palavra e buscar
um bloco?
1. Verificar se ocorreu hit, se não ir para 3
2. Procurar por bloco desejado (Tag ou direto) e escrever. Se Write-through escrever
palavra também nos níveis mais baixos. Se Write-back ligar dirty-bit. Ir para 8
3. Requisitar ao nível abaixo
4. Receber bloco. Procurar onde colocar e se cache cheia ir para 5. Se achar posição
livre escrever bloco. Se replicação Write-through escrever palavra também nos
níveis abaixo. Se Write-back ligar dirty-bit. Ir para 8
5. Procurar bloco para substituir (usar política)
6. Se replicação Write-back e dirty-bit ligado, salvar substituído nos níveis abaixo
7. Substituir bloco e escrever palavra. Se replicação Write-through escrever palavra
também nos níveis abaixo. Se Write-back ligar dirty-bit.
8. Fim
10 / 13
Exercícios
10.
(POSCOMP 2006 - 21) Considere dois sistemas A e B compostos por processador,
cache e memória cuja única diferença é a cache de dados. As caches de dados
possuem em comum palavras de 2 Bytes, capacidade (por exemplo, 2 KBytes),
tamanho de bloco (por exemplo, 8 Bytes por linha) e são implementadas com a
mesma tecnologia, porém com organizações diferentes como definidas abaixo:
–
–
•
Considere as seguintes afirmações para os sistemas A e B executando um mesmo
programa típico:
I.
II.
III.
IV.
V.
VI.
•
(Cache de A) Cache com mapeamento direto, utilizando políticas write–through e no-write
allocate (escritas não utilizam a cache)
(Cache de B) Cache 4–way set-associative, utilizando políticas write–back, write–allocate e LRU
O sistema A deve possuir um miss rate maior do que B
O sistema B deve possuir um hit rate menor do que A
A cache de dados de A é mais rápida do que a de B
A cache de dados de A é mais simples de ser implementada do que a de B
Em média, uma escrita de dados no sistema A é mais rápido do que em B
As caches de dados de A e B possuem o mesmo número de linhas
Quais são as afirmações verdadeiras?
a.
b.
c.
d.
e.
Somente as afirmações (II), (III) e (IV) são verdadeiras
Somente as afirmações (I), (III) e (VI) são verdadeiras
Somente as afirmações (I), (III) e (IV) são verdadeiras
Somente as afirmações (II), (V) e (VI) são verdadeiras
Todas as afirmações são verdadeiras
11 / 13
Resposta de Exercícios
10.
(POSCOMP 2006 - 21) Considere dois sistemas A e B compostos por processador,
cache e memória cuja única diferença é a cache de dados. As caches de dados
possuem em comum palavras de 2 Bytes, capacidade (por exemplo, 2 KBytes),
tamanho de bloco (por exemplo, 8 Bytes por linha) e são implementadas com a
mesma tecnologia, porém com organizações diferentes como definidas abaixo:
–
–
•
Considere as seguintes afirmações para os sistemas A e B executando um mesmo
programa típico:
I.
II.
III.
IV.
V.
VI.
•
(Cache de A) Cache com mapeamento direto, utilizando políticas write–through e no-write
allocate (escritas não utilizam a cache)
(Cache de B) Cache 4–way set-associative, utilizando políticas write–back, write–allocate e LRU
O sistema A deve possuir um miss rate maior do que B
O sistema B deve possuir um hit rate menor do que A
A cache de dados de A é mais rápida do que a de B
A cache de dados de A é mais simples de ser implementada do que a de B
Em média, uma escrita de dados no sistema A é mais rápido do que em B
As caches de dados de A e B possuem o mesmo número de linhas
Quais são as afirmações verdadeiras?
a.
b.
c.
d.
e.
Somente as afirmações (II), (III) e (IV) são verdadeiras
Somente as afirmações (I), (III) e (VI) são verdadeiras
Somente as afirmações (I), (III) e (IV) são verdadeiras
Somente as afirmações (II), (V) e (VI) são verdadeiras
Todas as afirmações são verdadeiras
12 / 13
Exercícios
11. (POSCOMP 2008 - 33) O uso de memória caches é muito importante para
o desempenho dos processadores atuais. Analise as afirmativas abaixo
relativas ao uso de memórias caches.
I.
II.
III.
•
Em uma memória cache com mapeamento direto um bloco de memória pode ser
colocado em qualquer posição (entrada) dessa memória cache.
Na política de escrita write-back o bloco modificado é atualizado na memória
principal apenas quando for substituído.
O uso de associatividade nas memórias cache serve para reduzir o número de
falhas por conflito.
A análise permite concluir que
a.
b.
c.
d.
e.
As três afirmativas são falsas.
As três afirmativas são verdadeiras.
Apenas a afirmativa I é verdadeira.
Apenas as afirmativas II e III são verdadeiras.
Apenas a afirmativa III é verdadeira.
13 / 13
Exercícios
11. (POSCOMP 2008 - 33) O uso de memória caches é muito importante para
o desempenho dos processadores atuais. Analise as afirmativas abaixo
relativas ao uso de memórias caches.
I.
II.
III.
•
Em uma memória cache com mapeamento direto um bloco de memória pode ser
colocado em qualquer posição (entrada) dessa memória cache.
Na política de escrita write-back o bloco modificado é atualizado na memória
principal apenas quando for substituído.
O uso de associatividade nas memórias cache serve para reduzir o número de
falhas por conflito.
A análise permite concluir que
a.
b.
c.
d.
e.
As três afirmativas são falsas.
As três afirmativas são verdadeiras.
Apenas a afirmativa I é verdadeira.
Apenas as afirmativas II e III são verdadeiras.
Apenas a afirmativa III é verdadeira.
Download

Integridade de Dados em Memorias Cache