Memória Cache. Princípio da Localidade Apenas uma parte relativamente pequena do espaço de...
-
Upload
pietra-franca-faria -
Category
Documents
-
view
216 -
download
0
Transcript of Memória Cache. Princípio da Localidade Apenas uma parte relativamente pequena do espaço de...
![Page 1: Memória Cache. Princípio da Localidade Apenas uma parte relativamente pequena do espaço de endereçamento dos programas é acessada em um instante qualquer.](https://reader035.fdocumentos.com/reader035/viewer/2022062502/570638631a28abb823900e6e/html5/thumbnails/1.jpg)
Memória Cache
![Page 2: Memória Cache. Princípio da Localidade Apenas uma parte relativamente pequena do espaço de endereçamento dos programas é acessada em um instante qualquer.](https://reader035.fdocumentos.com/reader035/viewer/2022062502/570638631a28abb823900e6e/html5/thumbnails/2.jpg)
Princípio da Localidade•Apenas uma parte relativamente
pequena do espaço de endereçamento dos programas é acessada em um instante qualquer▫Localidade Temporal
Um item referenciado tende a ser referenciado novamente dentro de um espaço de tempo curto
▫Localidade Espacial Se um item é referenciado, itens cujos
endereços sejam próximos ao dele tendem a ser logo referenciados
2
![Page 3: Memória Cache. Princípio da Localidade Apenas uma parte relativamente pequena do espaço de endereçamento dos programas é acessada em um instante qualquer.](https://reader035.fdocumentos.com/reader035/viewer/2022062502/570638631a28abb823900e6e/html5/thumbnails/3.jpg)
Localidade em Programas•Localidade temporal:
▫Em função de sua estrutura, as instruções e dados da maioria dos programas tendem a ser acessados de maneira repetitiva
•Localidade espacial:▫As instruções são acessadas quase sempre
de maneira seqüencial Elementos de arrays ou registros
3
![Page 4: Memória Cache. Princípio da Localidade Apenas uma parte relativamente pequena do espaço de endereçamento dos programas é acessada em um instante qualquer.](https://reader035.fdocumentos.com/reader035/viewer/2022062502/570638631a28abb823900e6e/html5/thumbnails/4.jpg)
Níveis de Memória - 01•Dados sempre copiados entre níveis de
memória adjacentes▫Análise focada apenas em dois níveis, um
superior e um inferior•Bloco:
▫Unidade mínima de informação trocada entre níveis
4
![Page 5: Memória Cache. Princípio da Localidade Apenas uma parte relativamente pequena do espaço de endereçamento dos programas é acessada em um instante qualquer.](https://reader035.fdocumentos.com/reader035/viewer/2022062502/570638631a28abb823900e6e/html5/thumbnails/5.jpg)
Níveis de Memória - 02
5
Processador
Dados transferidos
![Page 6: Memória Cache. Princípio da Localidade Apenas uma parte relativamente pequena do espaço de endereçamento dos programas é acessada em um instante qualquer.](https://reader035.fdocumentos.com/reader035/viewer/2022062502/570638631a28abb823900e6e/html5/thumbnails/6.jpg)
Taxa/Razão de Acertos•Mede desempenho da Hierarquia•Acerto:
▫Informação solicitada pelo processador encontra-se no nível superior
▫Taxa de acerto: fração de acessos com acerto•Falta:
▫Informação solicitada pelo processador não se encontrada no nível superior Nível inferior acessado em busca do bloco.
▫Taxa de faltas = (1 – taxa de acerto)
6
![Page 7: Memória Cache. Princípio da Localidade Apenas uma parte relativamente pequena do espaço de endereçamento dos programas é acessada em um instante qualquer.](https://reader035.fdocumentos.com/reader035/viewer/2022062502/570638631a28abb823900e6e/html5/thumbnails/7.jpg)
Tempo de Acerto e Penalidade por Faltas
•Determinam a eficiência da implementação de uma hierarquia de memória▫Tempo de acerto – tempo para acesso ao
nível superior, incluindo o tempo para determinar o acerto ou falta
▫Penalidade por falta – tempo para a substituição dos blocos mais o tempo de envio da informação ao processador
▫Tempo de acerto <<< penalidade por falta
7
![Page 8: Memória Cache. Princípio da Localidade Apenas uma parte relativamente pequena do espaço de endereçamento dos programas é acessada em um instante qualquer.](https://reader035.fdocumentos.com/reader035/viewer/2022062502/570638631a28abb823900e6e/html5/thumbnails/8.jpg)
Memória Cache•Originalmente, nível da hierarquia de
memória situado entre o processador e a memória principal
•Termo estendido para qualquer memória gerenciada de modo a tirar vantagem da localidade de acesso
8
![Page 9: Memória Cache. Princípio da Localidade Apenas uma parte relativamente pequena do espaço de endereçamento dos programas é acessada em um instante qualquer.](https://reader035.fdocumentos.com/reader035/viewer/2022062502/570638631a28abb823900e6e/html5/thumbnails/9.jpg)
Características - 01•Diminui o gargalo existente entre
processador e memória principal▫Diferença de velocidade
•5 a 10 vezes mais rápidas que a memória principal
•Ligada diretamente à MP
9
![Page 10: Memória Cache. Princípio da Localidade Apenas uma parte relativamente pequena do espaço de endereçamento dos programas é acessada em um instante qualquer.](https://reader035.fdocumentos.com/reader035/viewer/2022062502/570638631a28abb823900e6e/html5/thumbnails/10.jpg)
Características - 02•Tecnologia semelhante à da CPU e, em
conseqüência, possui tempos de acesso compatíveis com a mesma, resultando numa considerável redução da espera da CPU para receber dados e instruções da cache
10
![Page 11: Memória Cache. Princípio da Localidade Apenas uma parte relativamente pequena do espaço de endereçamento dos programas é acessada em um instante qualquer.](https://reader035.fdocumentos.com/reader035/viewer/2022062502/570638631a28abb823900e6e/html5/thumbnails/11.jpg)
Níveis De Cache - 01• L1 – Level 1 (nível 1)
▫Dentro do processador▫Mesma velocidade do processador
• L2 – Level 2 (nível 2)▫Dentro do invólucro, fora do chip▫Metade da velocidade do processador
• L3 – Level 3 (nível 3)▫Cache externa, situada na placa mãe
11
![Page 12: Memória Cache. Princípio da Localidade Apenas uma parte relativamente pequena do espaço de endereçamento dos programas é acessada em um instante qualquer.](https://reader035.fdocumentos.com/reader035/viewer/2022062502/570638631a28abb823900e6e/html5/thumbnails/12.jpg)
Níveis De Cache - 02
12
Cache L1
ProcessadorCache L2 Memória
principal
Invólucro do processador
![Page 13: Memória Cache. Princípio da Localidade Apenas uma parte relativamente pequena do espaço de endereçamento dos programas é acessada em um instante qualquer.](https://reader035.fdocumentos.com/reader035/viewer/2022062502/570638631a28abb823900e6e/html5/thumbnails/13.jpg)
Divisão da Cache L1•A cache L1 é geralmente dividida em
cache de dados e cache de instruções: processamento mais rápido
13
dados
processador
instruções
Cache L1
![Page 14: Memória Cache. Princípio da Localidade Apenas uma parte relativamente pequena do espaço de endereçamento dos programas é acessada em um instante qualquer.](https://reader035.fdocumentos.com/reader035/viewer/2022062502/570638631a28abb823900e6e/html5/thumbnails/14.jpg)
Localidade•Devido ao princípio da localidade, é
interessante que a memória cache armazene o pedaço do programa que é executado repetidas vezes, deixando o restante do programa que não está sendo utilizado na memória principal
14
![Page 15: Memória Cache. Princípio da Localidade Apenas uma parte relativamente pequena do espaço de endereçamento dos programas é acessada em um instante qualquer.](https://reader035.fdocumentos.com/reader035/viewer/2022062502/570638631a28abb823900e6e/html5/thumbnails/15.jpg)
Utilização da Cache - 01•Sempre que o processador vai buscar uma
nova instrução (ou dado), ele acessa a memória cache:▫Se a instrução estiver na cache (acerto ou hit),
ela é transferida em alta velocidade para o processador
▫Se a instrução não estiver na cache (falta ou miss), a execução do programa é interrompida e a instrução desejada é transferida da MP para a MC
15
![Page 16: Memória Cache. Princípio da Localidade Apenas uma parte relativamente pequena do espaço de endereçamento dos programas é acessada em um instante qualquer.](https://reader035.fdocumentos.com/reader035/viewer/2022062502/570638631a28abb823900e6e/html5/thumbnails/16.jpg)
Utilização da Cache - 02•Não é feita a transferência somente da
instrução, mas sim de um bloco que, segundo o princípio da localidade, contém instruções que serão usadas em seguida
16
![Page 17: Memória Cache. Princípio da Localidade Apenas uma parte relativamente pequena do espaço de endereçamento dos programas é acessada em um instante qualquer.](https://reader035.fdocumentos.com/reader035/viewer/2022062502/570638631a28abb823900e6e/html5/thumbnails/17.jpg)
17
Processador Cache
controlador de cache
Memóriaprincipal
Bloco de palavrasPalavra
(instruçãoou dado)
![Page 18: Memória Cache. Princípio da Localidade Apenas uma parte relativamente pequena do espaço de endereçamento dos programas é acessada em um instante qualquer.](https://reader035.fdocumentos.com/reader035/viewer/2022062502/570638631a28abb823900e6e/html5/thumbnails/18.jpg)
Elementos de Projetos de uma Cache•Função de mapeamento MP/MC•Algoritmos de substituição de dados na
cache•Políticas de escrita
18
![Page 19: Memória Cache. Princípio da Localidade Apenas uma parte relativamente pequena do espaço de endereçamento dos programas é acessada em um instante qualquer.](https://reader035.fdocumentos.com/reader035/viewer/2022062502/570638631a28abb823900e6e/html5/thumbnails/19.jpg)
Função de Mapeamento•A função de mapeamento indica quais
blocos da MP estão presentes na cache e onde eles estão localizados na cache▫A MC e MP estão divididas em blocos de x
palavras▫A MC pode conter m blocos (linhas)▫A MP pode conter b blocos
19
![Page 20: Memória Cache. Princípio da Localidade Apenas uma parte relativamente pequena do espaço de endereçamento dos programas é acessada em um instante qualquer.](https://reader035.fdocumentos.com/reader035/viewer/2022062502/570638631a28abb823900e6e/html5/thumbnails/20.jpg)
20
.
.
.Bloco 0
Byte 0Byte 1
Byte 63
.
.
.
Byte 0Byte 1
Byte 63
Bloco 1
.
.
.
Byte 0Byte 1
Byte 63
Bloco 226 -1
.
.
.
MP
Divisão da MP de 4G bytes em blocos de 64 bytes então tem-se 226 blocos de 64 bytes
![Page 21: Memória Cache. Princípio da Localidade Apenas uma parte relativamente pequena do espaço de endereçamento dos programas é acessada em um instante qualquer.](https://reader035.fdocumentos.com/reader035/viewer/2022062502/570638631a28abb823900e6e/html5/thumbnails/21.jpg)
21
Byte 0
Byte 0
Byte 0
Tag ou rótulo
MC
Byte 0
Byte 1
Byte 1
Byte 1
Byte 1
Byte 63
Byte 63
Byte 63
Byte 63 ...
...
...
...
.
.
.
Linha 0Linha 1Linha 2
Linha 1023
Divisão da MC de 64K bytes em linhas de 64 bytes então tem-se 1024 linhas de 64 bytes
![Page 22: Memória Cache. Princípio da Localidade Apenas uma parte relativamente pequena do espaço de endereçamento dos programas é acessada em um instante qualquer.](https://reader035.fdocumentos.com/reader035/viewer/2022062502/570638631a28abb823900e6e/html5/thumbnails/22.jpg)
Mapeamento Direto - 01•Cada bloco da MP tem uma linha de
cache previamente definida para ser armazenado
•Muitos blocos irão ser destinados a uma mesma linha
22
![Page 23: Memória Cache. Princípio da Localidade Apenas uma parte relativamente pequena do espaço de endereçamento dos programas é acessada em um instante qualquer.](https://reader035.fdocumentos.com/reader035/viewer/2022062502/570638631a28abb823900e6e/html5/thumbnails/23.jpg)
23
.
.
.B 0
Byte 0Byte 1
Byte 63
.
.
.
Byte 0Byte 1
Byte 63
B 1
.
.
.
Byte 0Byte 1
Byte 63
B 226 -1
.
.
.
Byte 0
Byte 0
Byte 0
Byte 0
Byte 1
Byte 1
Byte 1
Byte 1
Byte 63
Byte 63
Byte 63
Byte 63 ...
...
...
...
.
.
.
Linha 0
Linha 1
Linha 2
Linha 1023
tag
Bloco 1023
![Page 24: Memória Cache. Princípio da Localidade Apenas uma parte relativamente pequena do espaço de endereçamento dos programas é acessada em um instante qualquer.](https://reader035.fdocumentos.com/reader035/viewer/2022062502/570638631a28abb823900e6e/html5/thumbnails/24.jpg)
Mapeamento Direto - 02•Cada linha da MC deverá acomodar 216
blocos ou 65536 blocos (um de cada vez)•O campo tag serve para identificar qual
bloco a linha está armazenando no momento
24
![Page 25: Memória Cache. Princípio da Localidade Apenas uma parte relativamente pequena do espaço de endereçamento dos programas é acessada em um instante qualquer.](https://reader035.fdocumentos.com/reader035/viewer/2022062502/570638631a28abb823900e6e/html5/thumbnails/25.jpg)
Mapeamento Direto - 03•Cada endereço de MP pode ser dividido
nos seguintes elementos:
25
Número do bloco na linha Número da linha Número do byte
16 bits216= 64K blocos
10 bits210= 1024 linhas
6 bits26= 64 bytes
32 bits
![Page 26: Memória Cache. Princípio da Localidade Apenas uma parte relativamente pequena do espaço de endereçamento dos programas é acessada em um instante qualquer.](https://reader035.fdocumentos.com/reader035/viewer/2022062502/570638631a28abb823900e6e/html5/thumbnails/26.jpg)
Mapeamento Direto - 04•Exemplo:
▫O processador manda para a MC o seguinte endereço:
26
00000000000001000000011001001000
4 25 8
![Page 27: Memória Cache. Princípio da Localidade Apenas uma parte relativamente pequena do espaço de endereçamento dos programas é acessada em um instante qualquer.](https://reader035.fdocumentos.com/reader035/viewer/2022062502/570638631a28abb823900e6e/html5/thumbnails/27.jpg)
27
Byte 0
Byte 0
Byte 0
Tag ou rótulo
Byte 0
Byte 1
Byte 1
Byte 1
Byte 1
Byte 63
Byte 63
Byte 63
Byte 63 ...
...
...
... Linha 0Linha 1Linha 2
Linha 1023
00000000000001000000011001001000
4 25 8
Byte 0Byte 1Byte 63 Byte 84 Linha 25
![Page 28: Memória Cache. Princípio da Localidade Apenas uma parte relativamente pequena do espaço de endereçamento dos programas é acessada em um instante qualquer.](https://reader035.fdocumentos.com/reader035/viewer/2022062502/570638631a28abb823900e6e/html5/thumbnails/28.jpg)
Mapeamento Direto - 05•Se o campo tag do endereço for igual ao
campo tag da linha da cache, o conteúdo do byte solicitado é enviado para o processador
28
![Page 29: Memória Cache. Princípio da Localidade Apenas uma parte relativamente pequena do espaço de endereçamento dos programas é acessada em um instante qualquer.](https://reader035.fdocumentos.com/reader035/viewer/2022062502/570638631a28abb823900e6e/html5/thumbnails/29.jpg)
Mapeamento Direto - 06•Se os campos tag forem diferentes, isso
significa que o bloco desejado não se encontra na cache e, portanto, deve ser transferido da MP para a linha 25, substituindo o atual bloco para, em seguida, a palavra (o byte) requerida ser transferida para o processador pelo barramento de dados
29
![Page 30: Memória Cache. Princípio da Localidade Apenas uma parte relativamente pequena do espaço de endereçamento dos programas é acessada em um instante qualquer.](https://reader035.fdocumentos.com/reader035/viewer/2022062502/570638631a28abb823900e6e/html5/thumbnails/30.jpg)
Mapeamento Direto - 08•A técnica de mapeamento direto é simples
e de baixo custo•Desvantagem: fixação da localização para
os blocos▫Imagine se durante a execução de um
programa um dado código fizer referências repetidas a palavras situadas em blocos alocados na mesma linha, então haverá necessidade de sucessivas idas à MP para substituição de blocos (muitas faltas) e queda no desempenho do sistema
30
![Page 31: Memória Cache. Princípio da Localidade Apenas uma parte relativamente pequena do espaço de endereçamento dos programas é acessada em um instante qualquer.](https://reader035.fdocumentos.com/reader035/viewer/2022062502/570638631a28abb823900e6e/html5/thumbnails/31.jpg)
Mapeamento Associativo - 01•Os blocos não têm uma linha fixada
previamente para seu armazenamento•O bloco é armazenado em uma linha que é
selecionada de acordo com o algoritmo de substituição de cache
31
![Page 32: Memória Cache. Princípio da Localidade Apenas uma parte relativamente pequena do espaço de endereçamento dos programas é acessada em um instante qualquer.](https://reader035.fdocumentos.com/reader035/viewer/2022062502/570638631a28abb823900e6e/html5/thumbnails/32.jpg)
32
.
.
.B 0
Byte 0Byte 1
Byte 63
.
.
.
Byte 0Byte 1
Byte 63
B 1
.
.
.
Byte 0Byte 1
Byte 63
B 226 -1
.
.
.
Byte 0
Byte 0
Byte 0
Byte 0
Byte 1
Byte 1
Byte 1
Byte 1
Byte 63
Byte 63
Byte 63
Byte 63 ...
...
...
...
.
.
.
Linha 0
Linha 1
Linha 2
Linha 1023
tag
![Page 33: Memória Cache. Princípio da Localidade Apenas uma parte relativamente pequena do espaço de endereçamento dos programas é acessada em um instante qualquer.](https://reader035.fdocumentos.com/reader035/viewer/2022062502/570638631a28abb823900e6e/html5/thumbnails/33.jpg)
Mapeamento Associativo - 02•Cada linha da MC pode acomodar um dos
226 blocos da memória principal•O campo tag tem agora 26 bits de
tamanho
33
![Page 34: Memória Cache. Princípio da Localidade Apenas uma parte relativamente pequena do espaço de endereçamento dos programas é acessada em um instante qualquer.](https://reader035.fdocumentos.com/reader035/viewer/2022062502/570638631a28abb823900e6e/html5/thumbnails/34.jpg)
Mapeamento Associativo - 03•Cada endereço de MP é dividido nos
seguintes elementos:
34
Número do bloco Número do byte
26 bits226 blocos
6 bits26 bytes
32 bits
![Page 35: Memória Cache. Princípio da Localidade Apenas uma parte relativamente pequena do espaço de endereçamento dos programas é acessada em um instante qualquer.](https://reader035.fdocumentos.com/reader035/viewer/2022062502/570638631a28abb823900e6e/html5/thumbnails/35.jpg)
Mapeamento Associativo - 04•Quando o processador realiza um acesso
à memória, o campo bloco do endereço é comparado com todos os 1024 tags da cache para verificar se o bloco está ou não presente
35
![Page 36: Memória Cache. Princípio da Localidade Apenas uma parte relativamente pequena do espaço de endereçamento dos programas é acessada em um instante qualquer.](https://reader035.fdocumentos.com/reader035/viewer/2022062502/570638631a28abb823900e6e/html5/thumbnails/36.jpg)
Mapeamento Associativo - 05•Se o bloco estiver presente, o byte é
transferido para a CPU senão o endereço do bloco é usado para buscar na memória principal o bloco ausente
36
![Page 37: Memória Cache. Princípio da Localidade Apenas uma parte relativamente pequena do espaço de endereçamento dos programas é acessada em um instante qualquer.](https://reader035.fdocumentos.com/reader035/viewer/2022062502/570638631a28abb823900e6e/html5/thumbnails/37.jpg)
Mapeamento Associativo - 06•Desvantagem: teste do campo bloco do
endereço de memória com todos os tags da cache
37
![Page 38: Memória Cache. Princípio da Localidade Apenas uma parte relativamente pequena do espaço de endereçamento dos programas é acessada em um instante qualquer.](https://reader035.fdocumentos.com/reader035/viewer/2022062502/570638631a28abb823900e6e/html5/thumbnails/38.jpg)
Mapeamento Associativo por Conjunto de N Posições - 01•Esquema intermediário entre o direto e o
totalmente associativo•Número fixo de posições onde um bloco
pode ser armazenado na cache•Cache associativa de n posições:
▫n posições possíveis para cada bloco▫Cache com conjuntos de n posições▫Blocos mapeados diretamente em um conjunto
e colocado em qualquer elemento do conjunto
38
![Page 39: Memória Cache. Princípio da Localidade Apenas uma parte relativamente pequena do espaço de endereçamento dos programas é acessada em um instante qualquer.](https://reader035.fdocumentos.com/reader035/viewer/2022062502/570638631a28abb823900e6e/html5/thumbnails/39.jpg)
Bits de Validade•Quando o processador é inicializado, a
cache está vazia e os rótulos não têm significado
•Bits de validade são adicionados à cache para identificar se um bloco tem informações válidas▫Bit igual a zero -> Informação inválida
39
![Page 40: Memória Cache. Princípio da Localidade Apenas uma parte relativamente pequena do espaço de endereçamento dos programas é acessada em um instante qualquer.](https://reader035.fdocumentos.com/reader035/viewer/2022062502/570638631a28abb823900e6e/html5/thumbnails/40.jpg)
Tratamento de Faltas – 01•Atividades do controle principal:
▫Parar o processador▫Congelar o conteúdo dos registradores
•Um controle separado trata as faltas:▫Busca a informação necessária na memória▫Atualiza a informação na cache
•Execução retomada no ciclo gerador da falta
40
![Page 41: Memória Cache. Princípio da Localidade Apenas uma parte relativamente pequena do espaço de endereçamento dos programas é acessada em um instante qualquer.](https://reader035.fdocumentos.com/reader035/viewer/2022062502/570638631a28abb823900e6e/html5/thumbnails/41.jpg)
Tratamento de Faltas – 021.Enviar à memória o valor original de PC2.Comandar uma leitura da unidade de
memória e esperar o resultado3.Escrever o resultado da leitura na
entrada da cache, seu rótulo e bit de validade
4.Reiniciar a execução da instrução no passo 1
41
![Page 42: Memória Cache. Princípio da Localidade Apenas uma parte relativamente pequena do espaço de endereçamento dos programas é acessada em um instante qualquer.](https://reader035.fdocumentos.com/reader035/viewer/2022062502/570638631a28abb823900e6e/html5/thumbnails/42.jpg)
Parada em Uso•Técnica para redução do número de ciclos
parados pela falta no acesso à cache•Baseia-se no processamento de outras
instruções durante o tratamento de faltas▫Na falta produzidas pelo acesso a dados novas
instruções que não dependem do dado podem ser executadas
▫Não ajuda para faltas no acesso a instruções•Geralmente, não mostra ganhos
expressivos pela dependência do dado sendo acessado
42
![Page 43: Memória Cache. Princípio da Localidade Apenas uma parte relativamente pequena do espaço de endereçamento dos programas é acessada em um instante qualquer.](https://reader035.fdocumentos.com/reader035/viewer/2022062502/570638631a28abb823900e6e/html5/thumbnails/43.jpg)
Algoritmos De Substituição De Cache - 01•Qual bloco atualmente armazenado na cache
deve ser retirado para dar lugar a um novo bloco que está sendo transferido?▫LRU (Least Recently Used): O controlador de
cache escolhe o bloco que está há mais tempo sem ser utilizado pela CPU
▫FIFO (First in first out): O controlador de cache escolhe o bloco que está armazenado há mais tempo na cache, independentemente de estar sendo usado ou não com freqüência pela CPU
43
![Page 44: Memória Cache. Princípio da Localidade Apenas uma parte relativamente pequena do espaço de endereçamento dos programas é acessada em um instante qualquer.](https://reader035.fdocumentos.com/reader035/viewer/2022062502/570638631a28abb823900e6e/html5/thumbnails/44.jpg)
Algoritmos De Substituição De Cache - 02
▫LFU (Least Frenquently Used): o controlador de cache escolhe o bloco que tem tido menos acessos (menos referências) por parte da CPU
▫Escolha aleatória
44
![Page 45: Memória Cache. Princípio da Localidade Apenas uma parte relativamente pequena do espaço de endereçamento dos programas é acessada em um instante qualquer.](https://reader035.fdocumentos.com/reader035/viewer/2022062502/570638631a28abb823900e6e/html5/thumbnails/45.jpg)
Políticas de Escrita pela Memória Cache - 01•Quando o processador realiza uma
operação de escrita, esta acorre imediatamente na cache
•A memória cache é uma memória intermediária logo é necessário que a MP seja atualizada para que o sistema mantenha sua correção e integridade
45
![Page 46: Memória Cache. Princípio da Localidade Apenas uma parte relativamente pequena do espaço de endereçamento dos programas é acessada em um instante qualquer.](https://reader035.fdocumentos.com/reader035/viewer/2022062502/570638631a28abb823900e6e/html5/thumbnails/46.jpg)
46
Cache
Memória Principal
X = 1Y = 7Z = 2
X = Y + Z
X = 1Y = 7Z = 2
X = Y + Z
Bloco 4 Bloco 4
Processador
X = Y + Z
Antes da execução da instrução X = Y + Z
![Page 47: Memória Cache. Princípio da Localidade Apenas uma parte relativamente pequena do espaço de endereçamento dos programas é acessada em um instante qualquer.](https://reader035.fdocumentos.com/reader035/viewer/2022062502/570638631a28abb823900e6e/html5/thumbnails/47.jpg)
47
Cache
Memória Principal
X = 9Y = 7Z = 2
X = Y + Z
X = 1Y = 7Z = 2
X = Y + Z
Bloco 4 Bloco 4
Processador
X = Y + Z
Depois da execução da instrução X = Y + Z
![Page 48: Memória Cache. Princípio da Localidade Apenas uma parte relativamente pequena do espaço de endereçamento dos programas é acessada em um instante qualquer.](https://reader035.fdocumentos.com/reader035/viewer/2022062502/570638631a28abb823900e6e/html5/thumbnails/48.jpg)
48
Processador
CacheX = 1
Processador
CacheX = 1
ProcessadorX = Y + Z
cacheX = 9
MP X = 1
X = 9X = 9X = 9
![Page 49: Memória Cache. Princípio da Localidade Apenas uma parte relativamente pequena do espaço de endereçamento dos programas é acessada em um instante qualquer.](https://reader035.fdocumentos.com/reader035/viewer/2022062502/570638631a28abb823900e6e/html5/thumbnails/49.jpg)
Políticas de Escrita pela Memória Cache - 02•O bloco 4 (o valor de X) precisa ser
atualizado na memória•Quando?
▫Depende da política de escrita
49
![Page 50: Memória Cache. Princípio da Localidade Apenas uma parte relativamente pequena do espaço de endereçamento dos programas é acessada em um instante qualquer.](https://reader035.fdocumentos.com/reader035/viewer/2022062502/570638631a28abb823900e6e/html5/thumbnails/50.jpg)
Write Through - 01•Cada escrita em uma palavra da cache
acarreta em uma escrita na palavra correspondente na MP, assegurando validade permanente e igual ao conteúdo de ambas as memórias
•Caso haja outras CPUs, estas alterarão também suas caches
50
![Page 51: Memória Cache. Princípio da Localidade Apenas uma parte relativamente pequena do espaço de endereçamento dos programas é acessada em um instante qualquer.](https://reader035.fdocumentos.com/reader035/viewer/2022062502/570638631a28abb823900e6e/html5/thumbnails/51.jpg)
Write Through - 02•Simples, mas não favorece o desempenho•Qualquer escrita faz com que a informação
seja escrita também na memória principal▫Aumento do número de ciclos de clock
•Buffer de escrita:▫Armazena o dado enquanto este aguarda sua
escrita na memória▫Reduz o problema das escritas na mem. principal▫Buffer cheio – Processador parado em escritas
51
![Page 52: Memória Cache. Princípio da Localidade Apenas uma parte relativamente pequena do espaço de endereçamento dos programas é acessada em um instante qualquer.](https://reader035.fdocumentos.com/reader035/viewer/2022062502/570638631a28abb823900e6e/html5/thumbnails/52.jpg)
Write Through - 03•Faltas de escrita:
▫Processador simplesmente atualiza a memória principal, como antes
▫Não ocorrem leituras da memória principal durante a escrita pelo processador
52
![Page 53: Memória Cache. Princípio da Localidade Apenas uma parte relativamente pequena do espaço de endereçamento dos programas é acessada em um instante qualquer.](https://reader035.fdocumentos.com/reader035/viewer/2022062502/570638631a28abb823900e6e/html5/thumbnails/53.jpg)
Write Back•Quando ocorre uma escrita, o novo valor é escrito apenas no bloco da cache▫O bloco só será escrito na memória
principal quando ele precisar ser substituído na cache
•Pode melhorar muito o desempenho, porém é mais complexo que o write-through
53
![Page 54: Memória Cache. Princípio da Localidade Apenas uma parte relativamente pequena do espaço de endereçamento dos programas é acessada em um instante qualquer.](https://reader035.fdocumentos.com/reader035/viewer/2022062502/570638631a28abb823900e6e/html5/thumbnails/54.jpg)
Tamanho do Bloco – 01 •Relaciona-se com a exploração da
localidade espacial e desempenho•Em geral, a taxa de faltas cai com o
aumento do tamanho do bloco
54
![Page 55: Memória Cache. Princípio da Localidade Apenas uma parte relativamente pequena do espaço de endereçamento dos programas é acessada em um instante qualquer.](https://reader035.fdocumentos.com/reader035/viewer/2022062502/570638631a28abb823900e6e/html5/thumbnails/55.jpg)
Tamanho do Bloco – 02•Taxa de faltas pode crescer se o bloco
representar uma fração considerável do tamanho da cache▫Pequeno número de blocos -> Alta
competição▫Blocos retirados da cache sem muita
exploração
55