Logo Passei Direto
Buscar
Material
páginas com resultados encontrados.
páginas com resultados encontrados.
left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

Prévia do material em texto

MEMÓRIA CACHE
Carlos Mágno
CAMPUS GARANHUNS
1
Roteiro
 Motivação;
 Princípio da Localidade;
 Princípios da Cache;
 Funcionamento;
Níveis de Cache;
 Operação de Leitura;
Memória Cache vs. Memória Principal;
 Tipos de Mapeamento;
 Algoritmos de Substituição;
 Políticas de Escrita;
 Cache nos processadores atuais;
 Exercícios de Fixação.
23/05/2018
Aula: Memória Cache - Carlos Mágno
2
2
Motivação
 Evolução dos Sistemas Computacionais
Memória RAM x Processador;
Exemplo (computador hipotético): Realizar uma soma, e ir buscar os operando na memória gasta de 60 ns e para o processador obter o resultado 0,3 ns.
23/05/2018
Aula: Memória Cache - Carlos Mágno
3
HENNESY, 2009
3
Princípio da Localidade (Denning, 1968)
Apenas uma parte relativamente pequena do espaço de endereçamento dos programas é acessada em um instante qualquer:
Localidade Espacial
Se um item é referenciado, itens cujos endereços sejam próximos ao dele tendem a ser logo referenciados
Localidade Temporal
Um item referenciado tende a ser referenciado novamente dentro de um espaço de tempo curto
23/05/2018
Aula: Memória Cache - Carlos Mágno
4
Espacial: A organização do código executável em memória. 
A existência de estruturas de dados na forma de coleções de itens.
Temporal: A existência de variáveis que são lidas/modificadas frequentemente em uma mesma região do código. ▶ A existência de repetições com variáveis acumuladoras. ▶ A existência de repetições que executam as mesmas instruções várias vezes seguidas
4
Princípios da Cache
 O termo cache é usado em vários contextos em computação:
 Cache de um browser;
 Cache de arquivos em memória;
 Memória cache.
 Em todos estes contextos, a ideia é armazenar informações de interesse em um local de acesso mais rápido. 
 É impossível armazenar tudo. 
 Mas se algo é encontrado na cache, ganhamos em desempenho. 
 Note que a consulta à cache consome algum tempo.
 Mas supõe-se que esse tempo é pequeno em relação ao ganho que ocorre quando achamos o dado.
23/05/2018
Aula: Memória Cache - Carlos Mágno
5
5
Princípios da cache
Cada local de cache pode armazenar o conteúdo de diversos locais de memória diferentes:
Como saber se dados correspondem a uma palavra requisitada?
Tags (rótulos) incluídos:
Campo que contém informações necessárias para identificar bloco
Contém parte superior do endereço
Precisamos reconhecer se bloco possui informações válidas
 Bit de validade
 Indica se bloco contém dados válidos
23/05/2018
Aula: Memória Cache - Carlos Mágno
6
6
Princípios de cache
23/05/2018
Aula: Memória Cache - Carlos Mágno
7
	Índice 	V	Tag	Dados
	000	N	 	 
	001	N	 	 
	010	N	 	 
	011	N	 	 
	100	N	 	 
	101	N	 	 
	110	N	 	 
	111	N	 	 
7
Funcionamento
 Memória cache, que serve como um reservatório temporário de dados e instruções com grande possibilidade de serem usados pelo processador; 
 Visa Diminuir o gargalo de velocidade existente entre processador e memória principal;
 A memória cache explora o princípio da localidade. Temporal e espacial.
 Ela é uma memória relativamente pequena, mas bastante rápida.
 Toda vez que o processador tenta acessar uma posição de memória, ele primeiro verifica a existência do dado na cache.
 Quando um dado é acessado na MP, ele é armazenado na cache.
23/05/2018
Aula: Memória Cache - Carlos Mágno
8
8
Funcionamento
23/05/2018
Aula: Memória Cache - Carlos Mágno
9
Stallings,2002
Esquema de uma memória cache
9
Funcionamento
23/05/2018
Aula: Memória Cache - Carlos Mágno
10
Funcionamento da cache
Stallings,2002
10
Níveis de Cache
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
23/05/2018
Aula: Memória Cache - Carlos Mágno
11
O cache começou a ser usado na época do 386, 
onde o cache era opcional e fazia parte da placa-mãe. 
Ao lançar o 486, a Intel integrou um cache de 8 KB
11
Caches de Dados e Instruções
23/05/2018
Aula: Memória Cache - Carlos Mágno
12
A cache L1 é geralmente dividida em cache de dados e cache de instruções: processamento mais rápido
12
Cache Multinível
23/05/2018
Aula: Memória Cache - Carlos Mágno
13
[Stallings, 2010]
5.4.10 – Caches Unificadas / Separadas 
• Embora, em sua origem, a memória cache tenha seguido o padrão von Neumann de conter indiscriminadamente dados e instruções, tem havido, nos últimos tempos, propostas num sentido “Harvard” de separar módulos de cache associados a instruções e dados. Por exemplo, pode-se separar o nível L1 num nível L1 de instruções e num nível L1 de dados. 
• Algumas vantagens do esquema unificado são: a) uma cache unificada tende a ter maior taxa de acerto, pois equilibra naturalmente a demanda do processador e explora ambos os tipos de localidade; b) simplicidade de projeto. 
• Por outro lado, há uma tendência em usar caches separadas, especialmente para máquinas superescalares como o Pentium e o Power PC [Stallings, 2010]. Isso desmembra a demanda relativa à busca / decodificação e aquela relativa à instrução, o que pode impactar num aumento da capacidade de exploração de paralelismo (e.g. num pipeline de instruções). 
13
Cache Multicore
23/05/2018
Aula: Memória Cache - Carlos Mágno
14
14
Cache Multicore
23/05/2018
Aula: Memória Cache - Carlos Mágno
15
15
Cache Multicore
23/05/2018
Aula: Memória Cache - Carlos Mágno
16
16
Operação de Leitura
A existência da memória cache altera o processo de leitura de dados da MP.
Quando a UCP deseja ler uma posição de memória, os seguintes eventos ocorrem:
 Processador escreve o endereço a ser lido no BE de acesso à MP.
 Controlador da cache intercepta pedido e verifica se o dado está em cache.
Se sim, temos um acerto (hit): dado é copiado para o processador.
Se não, temos um falta (miss): cache pede o dado à MP, o armazena e repassa para a UCP.
Note que, no caso de um miss, cache solicita um bloco inteiro à MP.
 Conjunto de dados maior que o dado a ser lido.
23/05/2018
Aula: Memória Cache - Carlos Mágno
17
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)
17
Operação de Leitura – (Miss)
Os Três Cs:
 Falhas Compulsórias: São faltas no acesso à cache, causadas pelo primeiro acesso que nunca esteve na cache.
 Falhas devido à Capacidade: São faltas que ocorrem porque a cache não pode armazenar todos os blocos necessários à execução de um programa.
 Falhas por Conflitos ou Colisão: São faltas que ocorrem no acesso à cache quando diversos blocos competem pelo mesmo conjunto. Não ocorrem em caches totalmente associativas.
23/05/2018
Aula: Memória Cache - Carlos Mágno
18
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)
18
Memória Cache vs. Memória Principal
 A memória cache é muito menor que a MP. 
 Não podemos guardar todos o conteúdo da MP na cache.
 Em outras palavras, só podemos armazenar um subconjunto dos blocos da MP. 
 Por isso, algumas questões fundamentais: 
 Quais blocos manter na cache? 
 Como determinar se um dado está em cache de forma eficiente?
 O que fazer quando um dado em cache é alterado? 
23/05/2018
Aula: Memória Cache - Carlos Mágno
19
19
Memória Cache vs. Memória Principal
 A memória cache é muito menor que a MP. 
 Não podemos guardar todos o conteúdo da MP na cache.
 Em outras palavras, só podemos armazenar um subconjunto dos blocos da MP. 
 Por isso, algumas questões fundamentais: 
 Quais blocos manter na cache? 
 Como determinar se um dado está em cache de forma eficiente?
 O que fazer quando um dadoem cache é alterado? 
23/05/2018
Aula: Memória Cache - Carlos Mágno
20
20
Tipos de Mapeamento
A função de mapeamento determina como a cache é preenchida, podendo ser: 
Direto: cada bloco da memória principal é mapeado para apenas uma linha de cache;
23/05/2018
Aula: Memória Cache - Carlos Mágno
21
Xavier, 2011
21
Tipos de Mapeamento
Mapeamento direto:
23/05/2018
Aula: Memória Cache - Carlos Mágno
22
Xavier, 2011
Pode ocorrer substituições de blocos, enquanto outros ficam ociosos.
22
Tipos de Mapeamento
A função de mapeamento determina como a cache é preenchida, podendo ser: 
Direto: cada bloco da memória principal é mapeado para apenas uma linha de cache;
Associativo: um bloco pode ser alocado em qualquer linha da cache;
23/05/2018
Aula: Memória Cache - Carlos Mágno
23
Xavier, 2011
23
Tipos de Mapeamento
Mapeamento Associativo: 
23/05/2018
Aula: Memória Cache - Carlos Mágno
24
Xavier, 2011
Requer memória associativa entre todos os endereços para realizar a busca na cache (alto custo).
24
Tipos de Mapeamento
A função de mapeamento determina como a cache é preenchida, podendo ser: 
Direto: cada bloco da memória principal é mapeado para apenas uma linha de cache;
Associativo: um bloco pode ser alocado em qualquer linha da cache;
Associativo por conjunto: a cache é dividida em conjuntos, com certo número de linhas cada e um bloco pode estar associado a qualquer linha de um conjunto já pré-determinado.
23/05/2018
Aula: Memória Cache - Carlos Mágno
25
Xavier, 2011
25
Tipos de Mapeamento
Mapeamento Associativo por Conjunto
23/05/2018
Aula: Memória Cache - Carlos Mágno
26
Xavier, 2011
Requer memória Associativa somente dentro de cada bloco; 
Melhor utilização dos blocos.
26
Vantagem e Desvantagens
	TIPO DE MAPEAMENTO	VANTAGEM	DESVANTAGEM
	Direto	Simples e de baixo custo.	Fixação da localização para os blocos;
Fenômeno thrashing.
	Associativo	 flexibilizar a alocação de blocos em
linhas da cache.	 maior complexidade do circuito da cache.
	Associativo por Conjunto	  Meio termo: Usa o mapeamento direto, onde cada bloco da MP tem um mapeamento fixo para um conjunto específico. Mas dentro do seu conjunto, o bloco pode ser armazenado em qualquer linha, como no mapeamento associativo.	
23/05/2018
Aula: Memória Cache - Carlos Mágno
27
Direto: O mapeamento direto é de fácil implementação. 
	▶ Principalmente se X e L forem potências de 2. 
		⋆ Basta olhar para conjuntos de bits do endereço para determinar se o dado está em cache. 
Mas ele traz uma potencial ineficiência: 
	▶ Blocos são sempre colocados na mesma linha. 
	▶ Se acessamos sucessivamente endereços de blocos diferentes mapeados para a mesma linha, sempre haverá cache miss.  
 
Associativo
O grande benefício do mapeamento associativo é flexibilizar a alocação de blocos em linhas da cache. 
	▶ Podemos ter blocos em quaisquer linhas. 
	▶ O que tende a aumentar a taxa de cache hit. 
Como desvantagem, temos a maior complexidade do circuito da cache. 
	▶ Principalmente em termos econômicos. 
	▶ Cache associativa é mais cara que a cache com mapeamento direto. 
	▶ Principalmente para caches grandes.
27
Exemplo – Mapeamento
Consideremos: 
Memória principal: 32 bits
Cache de 4 blocos >> 2N >> n sendo o número de blocos, então n = bits de index
 Sequencia desejada de endereços: [0;5;4;9;7;4;0;9;0;7]
23/05/2018
Aula: Memória Cache - Carlos Mágno
28
28
Mapeamento Direto
23/05/2018
Aula: Memória Cache - Carlos Mágno
29
	Endereço do Bloco	Bloco da Cache
	0	(0 modulo 4) = 0
	5	(5 modulo 4) = 1
	4	(4 modulo 4) = 0
	9	(9 modulo 4) = 1
	7	(7 modulo 4) = 3
	Endereço do bloco de
 memória acessado	Hit ou Miss	Conteúdo dos blocos de cache após referência			
			Bloco 0	Bloco 1	Bloco 2	Bloco 3
	0	Miss	Memory[0]	 	 	 
	5	Miss	Memory[0]	Memory[5]	 	 
	4	Miss	Memory[4]	Memory[5]	 	 
	9	Miss	Memory[4]	Memory[9]	 	 
	7	Miss	Memory[4]	Memory[9]	 	Memory[7]
	4	Hit	Memory[4]	Memory[9]	 	Memory[7]
	0	Miss	Memory[0]	Memory[9]	 	Memory[7]
	9	Hit	Memory[0]	Memory[9]	 	Memory[7]
	0	Hit	Memory[0]	Memory[9]	 	Memory[7]
	7	Hit	Memory[0]	Memory[9]	 	Memory[7]
29
Mapeamento Direto
23/05/2018
Aula: Memória Cache - Carlos Mágno
30
	Endereço do Bloco	Bloco da Cache
	0	(0 modulo 4) = 0
	5	(5 modulo 4) = 1
	4	(4 modulo 4) = 0
	9	(9 modulo 4) = 1
	7	(7 modulo 4) = 3
	Endereço do bloco de
 memória acessado	Hit ou Miss	Conteúdo dos blocos de cache após referência			
			Bloco 0	Bloco 1	Bloco 2	Bloco 3
	0	Miss	Memory[0]	 	 	 
	5	Miss	Memory[0]	Memory[5]	 	 
	4	Miss	Memory[4]	Memory[5]	 	 
	9	Miss	Memory[4]	Memory[9]	 	 
	7	Miss	Memory[4]	Memory[9]	 	Memory[7]
	4	Hit	Memory[4]	Memory[9]	 	Memory[7]
	0	Miss	Memory[0]	Memory[9]	 	Memory[7]
	9	Hit	Memory[0]	Memory[9]	 	Memory[7]
	0	Hit	Memory[0]	Memory[9]	 	Memory[7]
	7	Hit	Memory[0]	Memory[9]	 	Memory[7]
Taxa Hit = 4/10 = 40%
30
Mapeamento Associativo por 2 Conjuntos 
23/05/2018
Aula: Memória Cache - Carlos Mágno
31
	Endereço do Bloco	Bloco da Cache
	0	(0 modulo 2) = 0
	5	(5 modulo 2) = 1
	4	(4 modulo 2) = 0
	9	(9 modulo 2) = 1
	7	(7 modulo 2) = 1
	Endereço do bloco de
 memória acessado	Hit ou Miss	Conteúdo dos blocos de cache após referência			
			Conj 0	Conj 0	Conj 1	Conj 1
	0	Miss	Memory[0]	 	 	 
	5	Miss	Memory[0]	 	Memory[5]	 
	4	Miss	Memory[0]	Memory[4]	Memory[5]	 
	9	Miss	Memory[0]	Memory[4]	Memory[5]	Memory[9]
	7	Miss	Memory[0]	Memory[4]	Memory[7]	Memory[9]
	4	Hit	Memory[0]	Memory[4]	Memory[7]	Memory[9]
	0	Hit	Memory[0]	Memory[4]	Memory[7]	Memory[9]
	9	Hit	Memory[0]	Memory[4]	Memory[7]	Memory[9]
	0	Hit	Memory[0]	Memory[4]	Memory[7]	Memory[9]
	7	Hit	Memory[0]	Memory[4]	Memory[7]	Memory[9]
31
Mapeamento Associativo por 2 Conjuntos
23/05/2018
Aula: Memória Cache - Carlos Mágno
32
Taxa Hit = 5/10 = 50%
	Endereço do Bloco	Bloco da Cache
	0	(0 modulo 2) = 0
	5	(5 modulo 2) = 1
	4	(4 modulo 2) = 0
	9	(9 modulo 2) = 1
	7	(7 modulo 2) = 1
	Endereço do bloco de
 memória acessado	Hit ou Miss	Conteúdo dos blocos de cache após referência			
			Conj 0	Conj 0	Conj 1	Conj 1
	0	Miss	Memory[0]	 	 	 
	5	Miss	Memory[0]	 	Memory[5]	 
	4	Miss	Memory[0]	Memory[4]	Memory[5]	 
	9	Miss	Memory[0]	Memory[4]	Memory[5]	Memory[9]
	7	Miss	Memory[0]	Memory[4]	Memory[7]	Memory[9]
	4	Hit	Memory[0]	Memory[4]	Memory[7]	Memory[9]
	0	Hit	Memory[0]	Memory[4]	Memory[7]	Memory[9]
	9	Hit	Memory[0]	Memory[4]	Memory[7]	Memory[9]
	0	Hit	Memory[0]	Memory[4]	Memory[7]	Memory[9]
	7	Hit	Memory[0]	Memory[4]	Memory[7]	Memory[9]
32
Mapeamento Associativo
23/05/2018
Aula: Memória Cache - Carlos Mágno
33
	Endereço do bloco de
 memória acessado	Hit ou Miss	Conteúdo dos blocos de cache após referência			
			Bloco 0	Bloco 1	Bloco 2	Bloco 3
	0	Miss	Memory[0]	 	 	 
	5	Miss	Memory[0]	Memory[5]	 	 
	4	Miss	Memory[0]	Memory[5]	Memory[4]	 
	9	Miss	Memory[0]	Memory[5]	Memory[4]	Memory[9]
	7	Miss	Memory[7]	Memory[5]	Memory[4]	Memory[9]
	4	Hit	Memory[7]	Memory[5]	Memory[4]	Memory[9]
	0	Miss	Memory[7]	Memory[0]	Memory[4]	Memory[9]
	9	Hit	Memory[7]	Memory[0]	Memory[4]	Memory[9]
	0	Hit	Memory[7]	Memory[0]	Memory[4]	Memory[9]
	7	Hit	Memory[7]	Memory[0]	Memory[4]	Memory[9]
33
Mapeamento Associativo
23/05/2018
Aula: Memória Cache - Carlos Mágno
34
Taxa Hit = 5/10 = 40%
	Endereço do bloco de
 memória acessado	Hit ou Miss	Conteúdo dos blocos de cache após referência			
			Bloco 0	Bloco 1	Bloco 2	Bloco 3
	0	Miss	Memory[0]	 	 	 
	5	Miss	Memory[0]	Memory[5]	 	 
	4	Miss	Memory[0]	Memory[5]	Memory[4]	 
	9	Miss	Memory[0]	Memory[5]	Memory[4]	Memory[9]
	7	Miss	Memory[7]	Memory[5]	Memory[4]	Memory[9]
	4	Hit	Memory[7]	Memory[5]	Memory[4]	Memory[9]
	0	Miss	Memory[7]	Memory[0]	Memory[4]	Memory[9]
	9	Hit	Memory[7]	Memory[0]	Memory[4]	Memory[9]
	0	Hit	Memory[7]	Memory[0]	Memory[4]	Memory[9]
	7	Hit	Memory[7]	Memory[0]	Memory[4]	Memory[9]
34
Memória Cache vs. Memória Principal
 A memória cache é muito menor que a MP. 
 Não podemos guardar todos o conteúdo da MP na cache.
 Em outras palavras, só podemos armazenar um subconjunto dos blocos da MP. 
 Por isso, algumas questões fundamentais: 
 Quais blocos manter na cache? 
 Como determinarse um dado está em cache de forma eficiente?
 O que fazer quando um dado em cache é alterado? 
23/05/2018
Aula: Memória Cache - Carlos Mágno
35
35
Problema da substituição dos dados
Cache cheia, novo bloco pode ser trazido para a cache, um dos blocos existes precisa ser substituído.
Mapeamento direto: existe apenas uma linha possível para qualquer bloco em particular e nenhuma escolha é possível.
Mapeamento associativos e associativa em conjunto: necessário algoritmo de substituição.
23/05/2018
Aula: Memória Cache - Carlos Mágno
36
36
Problema da substituição dos dados
Algoritmos de Substituição
Algoritmo em hardware: alta velocidade de substituição. Algoritmos mais comuns:
 LRU (Least Recently Used);
 FIFO (First-In-First-Out);
 LFU (Least Frequently Used);
 Escolher uma linha aleatória dentre as linhas candidatas.
23/05/2018
Aula: Memória Cache - Carlos Mágno
37
Escolha de entrada que será substituída em caso de falha.
1) Least Recently used (LRU): Complexa e custosa para hardware com alta associatividade.
2) Aleatório: resultados próximos a LRU, mais fácil de implementar
Memória Virtual: aproximação de LRU com suporte de hardware.
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
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
37
Memória Cache vs. Memória Principal
 A memória cache é muito menor que a MP. 
 Não podemos guardar todos o conteúdo da MP na cache.
 Em outras palavras, só podemos armazenar um subconjunto dos blocos da MP. 
 Por isso, algumas questões fundamentais: 
 Quais blocos manter na cache? 
 Como determinar se um dado está em cache de forma eficiente?
 O que fazer quando um dado em cache é alterado? 
23/05/2018
Aula: Memória Cache - Carlos Mágno
38
38
Problema da escrita dos dados
23/05/2018
Aula: Memória Cache - Carlos Mágno
39
Antes da execução da instrução:
X = Y + Z
39
Problema da escrita dos dados
23/05/2018
Aula: Memória Cache - Carlos Mágno
40
Depois da execução da instrução:
X = Y + Z
40
Problema da escrita dos dados
23/05/2018
Aula: Memória Cache - Carlos Mágno
41
41
Problema da escrita dos dados
23/05/2018
Aula: Memória Cache - Carlos Mágno
42
O bloco 4 (o valor de X) precisa ser atualizado na memória.
 Quando?
 Depende da política de escrita
42
Políticas de Escrita
Write-throug:
Todas as operações de escrita são realizadas na MP e na cache;
Módulo processador-cache monitora o tráfego para a MP para manter a consistência dentro de sua própria cache;
Desvantagem pois gera tráfego de memória considerável.
Write-back:
 Minimiza escritas na memória;
 Atualizações são feitas apenas na cache;
 Utiliza um bit de modificação ou uso associado à linha é marcado;
 Um bloco é substituído na MP se o bit de modificação estiver marcado;
 Partes da MP podem ficar inválidas devidos aos acessos pelos módulos de E/S que devem ser permitidos pela cache.
 Exige circuitos complexos e gera um gargalo em potencial.
23/05/2018
Aula: Memória Cache - Carlos Mágno
43
Write-through: atualiza os vários níveis; simplifica substituição, buffer de escrita ajuda.
Write-back: atualiza somente o nível mais próximo: atualiza o próximo nível quando o bloco for substituído. Precisa manter mais informações de estado.
Memória virtual: somente write-back é viável dado o tempo de escrita em disco.
Write Through 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.
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
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
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
• 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 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
43
Cache nos processadores atuais
AMD
O AMD Athlon II X4 630 tem 2 MB de memória cache L2.
O AMD Phenom II X4 965 tem 6 MB de memória cache L3;
O AMD AMD Ryzen 7 1700X tem 16 MB de memória cache L3
INTEL
Todos usam memória cache L3;
Core I3 -> 3 ou 4MB.
Core I5 -> 6MB;
Core I7 -> 8MB;
23/05/2018
Aula: Memória Cache - Carlos Mágno
44
44
Cache nos processadores atuais
23/05/2018
Aula: Memória Cache - Carlos Mágno
45
45
Cache nos processadores atuais
23/05/2018
Aula: Memória Cache - Carlos Mágno
46
46
Exercício de Fixação
1. O que é a memória cache? Quais são seu objetivo e a ideia básica de seu funcionamento?
2. Qual é a influência da função de mapeamento no projeto da cache? Explique cada uma das técnicas de mapeamento que podem ser utilizadas, apresentando as vantagens e desvantagens, se existente.
3. Explique quais são os motivos que podem diminui a Taxa de acertos (hits) na operação de leitura da memória cache?
4. Quais as vantagens de se empregar uma cache da arquitetura de Harvard ou uma cache unificada?
23/05/2018
Aula: Memória Cache - Carlos Mágno
47
47
Exercício de Fixação
5. Considerando as mesmas configurações da memória principal e da memória cache apresentado na aula. Inverta a sequência propostas e encontre as novas taxas de HIT aplicando os mapeamento direto, associativo por conjunto e associativo.
23/05/2018
Aula: Memória Cache - Carlos Mágno
48
48
Exercício de Fixação - Resolução
1. O que é a memória cache? Quais são seu objetivo e a ideia básica de seu funcionamento?
R) Tipo de memória de dados temporários que troca dados entre o Processador e Memória Principal. Tem o objetivo acelerar a execução das instruções do processador. Funcionar sendo acionada pelo processador em busca de dados, esta por sua vez, verifica se o dados encontra-se na Cache. Se sim, entrega o dado (gerando um HIT), ou não, nessa caso vai buscar um bloco de dados na memória Principal (gerando um Miss), entregando então, o dado ao processador e armazenando na cache.
23/05/2018
Aula: Memória Cache - Carlos Mágno
49
49
Exercício de Fixação - Resolução
2. Qual é a influência da função de mapeamento no projeto da cache? Explique cada uma das técnicas de mapeamento que podem ser utilizadas, apresentando as vantagens e desvantagens, se existente.
R) Possui um importante função, porque é responsável por determinar como a cache será preenchida. Pode ser usado três tipos: Direto, Associativo e Associativo por Conjunto: 
O Mapeamento direto possui simples e baixo custo de implementação, porém, a desvantagem de fixar a localização dos blocos e podo ocasionar o fenômeno de Thrashing.
O Mapeamento Associativo, resolver a questão da flexibilização da alocação de blocos em linhas de cache, porém, possui maior complexidade de do circuito da cache (ex. fator econômicos e caches grande).
No Mapeamento Associativo por Conjunto consegue ter um meio termo ao usar o mapeamento direto, onde cada bloco da memória principal tem um mapeamento fixo. Mas, dentro do seu conjunto, o bloco pode serarmazenado em qualquer linha.
23/05/2018
Aula: Memória Cache - Carlos Mágno
50
50
Exercício de Fixação - Resolução
3. Explique quais são os motivos que podem diminui a Taxa de acertos (hits) na operação de leitura da memória cache?
R) Os motivos são os de Falha Compulsória: Ocorro no acesso inicial à cache, porque não há dados armazenados no começo; Falha devido à capacidade: ocorrem porque a cache não pode armazenar todos os blocos necessários à execução de um programa; e Falha por conflito: que ocorrem no acesso à cache quando vários blocos competem pelo mesmo conjunto.
4. Quais as vantagens de se empregar uma cache da arquitetura de Harvard ou uma cache unificada?
R) Na Cache unificada há os dados e instruções sendo executadas juntas, tendo maior taxa de acerto por equilibrar a demanda do processador e explorar ambos os tipos de localidade. Na cache, baseada na arquitetura de Harvard, há uma tendência em usar as caches separadas em máquinas superescalares. Com a vantagem de aumentar a capacidade de exploração do paralelismo (Ex. em um pipeline de inscruções).
23/05/2018
Aula: Memória Cache - Carlos Mágno
51
51
Exercício de Fixação
5. R) Mapeamento Direto
23/05/2018
Aula: Memória Cache - Carlos Mágno
52
	Endereço do bloco de
 memória acessado	Hit ou Miss	Conteúdo dos blocos de cache após referência			
			0	1	2	3
	7	Miss	 	 	 	Memory[7]
	0	Miss	Memory[0]	 	 	Memory[7]
	9	Miss	Memory[0]	Memory[9]	 	Memory[7]
	0	Hit	Memory[0]	Memory[9]	 	Memory[7]
	4	Miss	Memory[4]	Memory[9]	 	Memory[7]
	7	Hit	Memory[4]	Memory[9]	 	Memory[7]
	9	Hit	Memory[4]	Memory[9]	 	Memory[7]
	4	Hit	Memory[4]	Memory[9]	 	Memory[7]
	5	Miss	Memory[4]	Memory[5]	 	Memory[7]
	0	Miss	Memory[0]	Memory[5]	 	Memory[7]
Taxa acerto = 4/10 = 40%
52
Exercício de Fixação
5. R) Mapeamento Associativo por 2 Conjuntos
23/05/2018
Aula: Memória Cache - Carlos Mágno
53
	Endereço do bloco de
 memória acessado	Hit ou Miss	Conteúdo dos blocos de cache após referência			
			Conj 0	Conj 0	Conj 1	Conj 1
	7	Miss	 	 	Memory[7]	 
	0	Miss	Memory[0]	 	Memory[7]	 
	9	Miss	Memory[0]	 	Memory[7]	Memory[9]
	0	Hit	Memory[0]	 	Memory[7]	Memory[9]
	4	Miss	Memory[0]	Memory[4]	Memory[7]	Memory[9]
	7	Hit	Memory[0]	Memory[4]	Memory[7]	Memory[9]
	9	Hit	Memory[0]	Memory[4]	Memory[7]	Memory[9]
	4	Hit	Memory[0]	Memory[4]	Memory[7]	Memory[9]
	5	Miss	Memory[0]	Memory[4]	Memory[5]	Memory[9]
	0	Hit	Memory[0]	Memory[4]	Memory[5]	Memory[9]
Taxa acerto = 5/10 = 50%
53
Exercício de Fixação
5. R) Mapeamento Associativo
23/05/2018
Aula: Memória Cache - Carlos Mágno
54
	Endereço do bloco de
 memória acessado	Hit ou Miss	Conteúdo dos blocos de cache após referência			
			Bloco 0	Bloco 1	Bloco 2	Bloco 3
	7	Miss	Memory[7]	 	 	 
	0	Miss	Memory[7]	Memory[0]	 	 
	9	Miss	Memory[7]	Memory[0]	Memory[9]	 
	0	Hit	Memory[7]	Memory[0]	Memory[9]	 
	4	Miss	Memory[7]	Memory[0]	Memory[9]	Memory[4]
	7	Hit	Memory[7]	Memory[0]	Memory[9]	Memory[4]
	9	Hit	Memory[7]	Memory[0]	Memory[9]	Memory[4]
	4	Hit	Memory[7]	Memory[0]	Memory[9]	Memory[4]
	5	Miss	Memory[5]	Memory[0]	Memory[9]	Memory[4]
	0	Hit	Memory[5]	Memory[0]	Memory[9]	Memory[4]
Taxa acerto = 5/10 = 50%
54
Exercício de Fixação
5. Considerando as mesmas configurações da memória principal e da memória cache apresentado na aula. Inverta a sequência propostas e encontre as novas taxas de HIT aplicando os mapeamento direto, associativo por conjunto e associativo.
23/05/2018
Aula: Memória Cache - Carlos Mágno
55
55
Atividade complementar para a próxima aula
1. Solicitação de uma pesquisa que compare as configurações de três computadores considerando o custo/benefício das memórias caches.
2. Aplique e obtenhas as taxa de acerto do exemplo do exercício de número 5, aplicando os três diferentes algoritmos de substituição, LRU, FIFO e LFU.
23/05/2018
Aula: Memória Cache - Carlos Mágno
56
56
Referências
 Bibliografia Básica
David A Patterson & John L. Hennessy. A Interface Hardware/Software. Campus, 4ª Edição, 2013.
 William Stallings. “Organização e Arquitetura de Computadores”, 5ª Edição, Pearson Prentice Hall, 2002.
Bibliografia Complementar
Xavier, M. A. S. Rodrigues, J. C., Júnior O. A. L. Simuladores de Memória Cache, um Estudo Comparativo Direcionado ao Ensino. Workshop sobre Educação em Arquitetura de Computadores WEAC. 2011.
23/05/2018
Aula: Memória Cache - Carlos Mágno
57
57
image1.png
image2.png
image3.png
image4.png
image5.png
image6.png
image7.png
image8.png
image9.png
image10.png
image11.jpeg
image12.png
image13.png
image14.png
image15.png
image16.png
image17.png
image18.png
image19.png
image20.png
image21.png
image22.png
image23.png
image24.png

Mais conteúdos dessa disciplina