Вы находитесь на странице: 1из 27

Engenharia de Software II Afonso Celso Soares Memria Cache

1
Engenharia de Software II
Afonso Celso Soares
Alguns Princpios de Memria Cache
Engenharia de Software II Afonso Celso Soares Memria Cache
2
Fonte de Referncia
Computer Organization and Design
The Hardware/Software Interface

David A. Patterson
John L. Hennessy

5 Edio

Morgan Kaufmann Elsevier

Captulo 5, sees,
5.3 O bsico de cache e
5.4 Medindo e melhorando o desempenho da cache
Engenharia de Software II Afonso Celso Soares Memria Cache
3
5.3 O bsico de cache
Engenharia de Software II Afonso Celso Soares Memria Cache
4
Introduo
Cache
Um buffer de memria entre a CPU e
uma memria de maior tamanho e
mais lenta.
Conceito usado pela primeira vez em
1960 em computadores de pesquisa.
A figura ilustra uma falha de cache ao
ser referenciado (pela CPU) um
contedo no existente na memria
(x
n
) e em seguida o contedo sendo
obtido da memria principal.
Computares modernos permitem uma
taxa de acertos (cache hit) da ordem
de 95%.
Engenharia de Software II Afonso Celso Soares Memria Cache
5
Mapeamento Direto
Cache Mapeada Diretamente
Forma mais simples de associar um endereo na
cache para cada endereo da memria principal.
A associao do endereo da cache baseado no
endereo da palavra na memria principal.
Cada endereo da cache chamado de bloco.
Os bits menos significativos do endereo da memria
so usados para enderear a cache.
Se a cache tiver 8 posies, a quantidade de bits
ser dada pela expresso
8 = 2
3
sero necessrio 3 bits do endereo da memria
Engenharia de Software II Afonso Celso Soares Memria Cache
6
Mapeamento Direto
Cache de mapeamento
direto com 8 entradas e
seus respectivos
endereos da memria.
Para cada 4 endereos
de memria existem 1
endereo associado na
cache.
Para encontrar um bloco:
(block address) modulo
(number of blocks in the
cache)
Engenharia de Software II Afonso Celso Soares Memria Cache
7
Mapeamento Direto
Como cada endereo da cache pode estar associado a 4 endereos da
memria, como saberemos em um dado momento a qual dos 4
endereos da memria a cache est associada?
A resposta est na insero de uma tag.

No caso da cache de 8 posies, uma tag ir corresponder aos dois bits
mais significativos do endereo da memria.

Endereos da memria:00000..00111 01000..01111 10000..10111 11000..11111
Tags................:00 01 10 11
Endereos da cache..: 000....111 000....111 000....111 000....111
(ndices) (ndices) (ndices) (ndices)


Engenharia de Software II Afonso Celso Soares Memria Cache
8
Mapeamento Direto
Como saber se um contedo da cache vlido ou no?
Insere-se um bit de validade.
Bit de validade = 1 o contedo vlido.
Bit de validade = 0 o contedo no vlido.

Na figura seguinte ilustra-se uma sequncia de 9 referncias memria
a partir de 8 blocos, inicialmente vazios da cache.

Engenharia de Software II Afonso Celso Soares Memria Cache
9
Mapeamento Direto
Engenharia de Software II Afonso Celso Soares Memria Cache
10
Mapeamento Direto
Engenharia de Software II Afonso Celso Soares Memria Cache
11
Mapeamento Direto
Engenharia de Software II Afonso Celso Soares Memria Cache
12
Mapeamento Direto
Na figura f, o armazenamento do endereo de memria 18 (10010) ir sobrepor
a posio 010 da cache, que estava guardando o valor do endereo 26 (11010)
da memria.
Esta sobreposio segue o princpio da localidade temporal. As palavras
referenciadas recentemente substituem as palavras menos referenciadas.

Engenharia de Software II Afonso Celso Soares Memria Cache
13
Partes do endereo referenciado
O nmero total de bits necessrios para uma cache
ser funo do tamanho da cache e do tamanho do
endereo, pois,
A cache inclui os dados armazenados e as tags.
A figura ilustra uma cache de 1024 blocos, sendo
cada bloco de uma palavra:

Engenharia de Software II Afonso Celso Soares Memria Cache
14
Partes do endereo referenciado
Engenharia de Software II Afonso Celso Soares Memria Cache
15
Manipulao de escritas
Escritas feitas pelo processador iro ocorrer
primeiro na cache.
Isto provocar uma inconsistncia entre a cache e
a memria.
Para resolver este problema, o valor deve ser
escrito na memria.
Esta ao chamada de write-through.
Embora seja simples, provoca perda de
desempenho do processador.
Engenharia de Software II Afonso Celso Soares Memria Cache
16
Manipulao de escritas
Uma segunda alternativa chamada de write
buffer.

Os dados so mantidos em buffer enquanto
esperam para ser escritos na memria.

Uma terceira alternativa chamada de write-back.

As valores so atualizados apenas nos blocos da
cache. A memria somente ser atualizada quando
o bloco da cache for substitudo.
Engenharia de Software II Afonso Celso Soares Memria Cache
17
Teste seu conhecimento
A velocidade do sistema de memria afecta a deciso do
projetista quanto ao tamanho do bloco de cache. Quais
das das seguintes diretrizes para o projeto de cache so
geralmente validos?
1. Quanto menor for a latncia da memria, menor dever ser o
bloco de cache.
2. Quanto menor for a latncia da memria, maior dever ser o
bloco de cache.
3. Quanto maior for a largura de banda, menor dever ser o bloco
de cache.
4. Quanto maior for a largura de banda de memria, maior dever
ser o bloco de cache.
Engenharia de Software II Afonso Celso Soares Memria Cache
18
Teste seu conhecimento
A velocidade do sistema de memria afecta a deciso do
projetista quanto ao tamanho do bloco de cache. Quais
das das seguintes diretrizes para o projeto de cache so
geralmente validos?
1. Quanto menor for a latncia da memria, menor dever ser o
bloco de cache.
2. Quanto menor for a latncia da memria, maior dever ser o
bloco de cache.
3. Quanto maior for a largura de banda, menor dever ser o bloco
de cache.
4. Quanto maior for a largura de banda de memria, maior
dever ser o bloco de cache.
Engenharia de Software II Afonso Celso Soares Memria Cache
19
5.4 Medindo e melhorando o
desempenho de cache

(incluindo apenas o desempenho)
Engenharia de Software II Afonso Celso Soares Memria Cache
20
Melhorando o desempenho
Alm da cache diretamente mapeada, eixstem duas
outras tcnicas para a melhoria do desempenho:
Totalmente associativo (fully associative).
Conjunto associativo (set associative).
Multinvel de caches.
Esses mtodos visam reduzir o nmero de falhas de
cache (cache miss), melhorando assim o desempenho.

Engenharia de Software II Afonso Celso Soares Memria Cache
21
Melhorando o desempenho
Totalmente associativo.
Como no se sabe em qual bloco o valor se encontra,
deve-se fazer a busca em toda a cache.
A busca ocorre durante a comparao dos endereos
de cada entrada.
Vlido para caches de poucos blocos.
Engenharia de Software II Afonso Celso Soares Memria Cache
22
Melhorando o desempenho
Conjunto associativo.
Tecnologia de desempenho intermedirio entre o
mapeamento direto e o totalmente associativo.
Um bloco pode ser colocado em um nmero fixo de
posies.
Um bloco mapead diretamente em um conjunto e
ento feita uma busca neste conjunto.



Engenharia de Software II Afonso Celso Soares Memria Cache
23
Melhorando o desempenho
Juntando as partes.


Engenharia de Software II Afonso Celso Soares Memria Cache
24
Melhorando o desempenho
Multinvel de cache.
Consiste na insero de duas ou mais caches no
caminho entre a CPU e a memria RAM.
Como os nveis tem ficado internamento ao
processador, o desempenho aumenta.
Uma falha de cache no nvel mais superior, far com
que a busca seja feita no nvel imediatamente abaixo
e assim por diante.
Falhas de cache em todos os nveis de cache iro
provacar maior penalidade no desempenho.


Engenharia de Software II Afonso Celso Soares Memria Cache
25
Dois exerccios
Engenharia de Software II Afonso Celso Soares Memria Cache
26
Melhorando o desempenho
1. Quantos valores de 32 bits podem ser
armazenados em uma com blocos de 16 bytes?
Engenharia de Software II Afonso Celso Soares Memria Cache
27
Melhorando o desempenho
1. Para uma cache de mapeamento direto com
endereos de 32 bits, os seguintes bits do
endereo so usados para acessar a cache.


a. Qual o tamanho do bloco da cache (em
palavras)?
b. Quantas entradas a cache possui?


Tag Index Offset
31-10 9-5 4-0

Вам также может понравиться