Escolar Documentos
Profissional Documentos
Cultura Documentos
2 / 57
Introduo a Caches
Funcionalidade
rea de memria rpida e com informaes dinmicas
Problemas
3 / 57
Soluo
Fazer mapeamento de endereos
Objetivo
Relacionar informaes (dados e instrues) da memria
principal com posies da cache
4 / 57
ndice
1. Mapeamento de Endereos em Memria Cache
1.1 Mapeamento Direto
1.2 Mapeamento Associativo
1.3 Mapeamento Conjunto Associativo
5 / 57
Exemplo
Cache de 4 posies e MP de 32 endereos (palavra de
8 bits)
Cada posio da cache tem 1 de 8 posies da MP
Endereo obtido pelo resto da diviso inteira do nmero
de posies da cache
Mapeamento utilizando os dois bits menos significativos do
endereo
6 / 57
7 / 57
Seno
Acusar miss
Ir para 4
Seno
Ler posio (hit)
Ir para 7
4.
5.
6.
7.
8 / 57
9 / 57
O que ganho ao
utilizar blocos ao
invs de palavras?
10 / 57
11 / 57
tagSize
(tS)
wordSize
(wS)
numberOfLines
(nOL)
Validity
bit (vb)
Tag
Word0
Word1 Word2
Wordn
com
Cache
cacheSize (cS)
=
Word
hit
wordSize (wS)
n = 2bAS - 1
Mapeamento Direto
Obtendo o formato do Endereamento
12 / 57
Mapeamento Direto
Obtendo o formato do Endereamento
13 / 57
Voltando ao problema:
memorySize = 2GWords
cacheSize = 64KBits = 64 1024 = 65536 bits
Blocos de 16 palavras
numberOfWordInsideBlocks = 16
blockAddressSize = log2(16) = 4
Mapeamento Direto
Obtendo o formato do Endereamento
14 / 57
Finalizando:
Substituindo o termo da equao na inequao, teremos:
65536 (513 + 27 - lineAddressSize) 2lineAddressSize
65536 (540 - lineAddressSize) 2lineAddressSize
65536 (540 - 6) 26
65536 34176
tagSize = 27 - lineAddressSize
tagSize = 27 - 6
tagSize = 21
lineAddressSize = 6
blockAddressSize = 4
15 / 57
Hardware barato
Procura simples (posio fixa)
No existe escolha da vtima ( dada pelo mdulo)
Simplicidade / Velocidade
16 / 57
Exerccios
1.
17 / 57
Resposta de Exerccios
1.
18 / 57
ndice
1. Mapeamento de Endereos em Memria Cache
1.1 Mapeamento Direto
1.2 Mapeamento Associativo
1.3 Mapeamento Conjunto Associativo
19 / 57
Conseqncias
Necessita fazer procura de dado
Necessita poltica de substituio
Quando ocorre miss
Buscar no nvel abaixo e, caso a cache esteja com todas posies
ocupadas, quem tirar para abrir lugar?
20 / 57
Endereo
proveniente do
processador
Endereo na
memria
associativa
Se todos os
bits dos
endereos
forem iguais
21 / 57
22 / 57
23 / 57
Usar polticas
Randmica
Escolhe aleatoriamente posio a ser substituda Simples,
mas sujeito a aumentar nmero de caches miss
Contador
Um contador baseado em algum clock aponta para a prxima
posio a ser substituda simples, mas igualmente poltica
randmica, est sujeita a aumentar o nmero de misses
24 / 57
Tcnica simples para pesquisar endereo de memria cache visitado h mais tempo.
Permite a implementao do critrio de substituio por tempo
A tcnica, na verdade, no retorna a posio h mais tempo visitada, mas simples,
fornecendo posies visitadas h mais tempo
Cada posio da cache tem associado um bit (flag) que informa se a mesma foi ou
no recentemente visitada. Quando posio de memria acessada, a flag escrita
Um ponteiro (relgio) que caminha nos endereos da cache em uma determinada
base de tempo, vai apagando as flags na medida em que passa por elas
Se uma posio de memria no tem a flag escrita considerada que ela foi acessada
h mais tempo e pode ser descartada. Esta informao fica em uma pequena lista no
gerente da hierarquia de memria
O algoritmo pode ser melhorado substituindo flags por contadores. Cada vez que o
relgio passa, contador decrementado, e cada vez que a posio de memria
acessada, contador volta para valor mximo
25 / 57
Seno
Acusar miss
4.
5.
6.
7.
8.
26 / 57
27 / 57
Desvantagens
Memria associativa tem alto custo e tamanho limitado
Limita nmero de linhas da cache
28 / 57
Exerccios
(POSCOMP 2013, Questo 48) Sobre memria cache, considere as
afirmativas a seguir.
I. No mapeamento associativo, cada bloco da memria principal pode ser carregado
em qualquer linha da cache.
II. No mapeamento direto, cada bloco da memria principal mapeado a apenas
uma linha de cache.
III. No mapeamento direto, o acesso repetido a diferentes blocos de memria
mapeados na mesma linha de cache resultar em uma alta taxa de acerto.
IV. A tcnica de mapeamento associativo simples e pouco dispendiosa para se
implementar.
Assinale a alternativa correta.
a) Somente as afirmativas I e II so corretas.
b) Somente as afirmativas I e IV so corretas.
c) Somente as afirmativas III e IV so corretas.
d) Somente as afirmativas I, II e III so corretas.
e) Somente as afirmativas II, III e IV so corretas.
29 / 57
Resposta de Exerccios
(POSCOMP 2013, Questo 48) Sobre memria cache, considere as afirmativas
a seguir.
I. No mapeamento associativo, cada bloco da memria principal pode ser carregado
em qualquer linha da cache.
II. No mapeamento direto, cada bloco da memria principal mapeado a apenas
uma linha de cache.
III. No mapeamento direto, o acesso repetido a diferentes blocos de memria
mapeados na mesma linha de cache resultar em uma alta taxa de acerto.
IV. A tcnica de mapeamento associativo simples e pouco dispendiosa para se
implementar.
Assinale a alternativa correta.
a) Somente as afirmativas I e II so corretas.
b) Somente as afirmativas I e IV so corretas.
c) Somente as afirmativas III e IV so corretas.
d) Somente as afirmativas I, II e III so corretas.
e) Somente as afirmativas II, III e IV so corretas.
30 / 57
Exerccios
Considere uma memria principal de 256 bytes, e caches de 4 linhas, cada linha
contendo um bloco de 8 bytes, alm do espao para colocar os bits de controle (bit
de validade e tag), se forem necessrios. Dadas as sequncias de acesso
memria principal tabeladas abaixo, preencha as caches para o caso de
mapeamento direto e associativo. Considere que no mapeamento associativo, a
poltica para substituio LRU. Compare ambas as implementaes. Diga quantos
miss e quantos hits aconteceram em cada caso
Sequncia de acessos (posio representada em hexadecimal)
31 / 57
Exerccios
(continuao)
Mapeamento Direto
Hits =
Miss =
Mapeamento Associativo
Hits =
Miss =
32 / 57
Resposta de Exerccios
(continuao)
Mapeamento Direto
BV TAG (3 bits)
0
0
0, 1 110
C8
0, 1 000, 100
10,90
0, 1 000, 100, 000 18,98,18
C9
11,91
19,99,19
CA
CB
CC
CD
CE
CF
12,92
13,93
14,94
15,95
16,96
17,97
1A,9A,1A 1B,9B,1B 1C,9C,1C 1D,9D,1D 1E,9E,1E 1F,9F,1F
BV
0,1
0,1
0,1
0,1
0
10, C8
18
90
98
1
11, C9
19
91
99
2
12, CA
1A
92
9A
3
13, CB
1B
93
9B
4
14, CC
1C
94
9C
5
15, CD
1D
95
9D
6
16, CE
1E
96
9E
7
17, CF
1F
97
9F
33 / 57
ndice
1. Mapeamento de Endereos em Memria Cache
1.1 Mapeamento Direto
1.2 Mapeamento Associativo
1.3 Mapeamento Conjunto Associativo
34 / 57
35 / 57
36 / 57
Seno
Acusar miss
5.
6.
7.
8.
9.
37 / 57
38 / 57
39 / 57
40 / 57
Mapeamento
Direto
Conjunto-associativo (4 cj)
Conjunto-associativo (2 cj)
Associativo
Esquema
41 / 57
42 / 57
Vantagens
Aumenta tamanho da cache mantendo tamanho da memria
associativa (limitao tecnolgica ou custo)
Pode usar a totalidade da cache para dados
Tags esto nas memrias associativas
Bit de validade pode ser substitudo por endereo invlido
Desvantagens
Memria associativa tem alto custo e tamanho limitado
Necessita poltica de substituio
Gasta tempo
Pode escolher mal
43 / 57
44 / 57
Exerccios:
1. Analise o comportamento das trs curvas
2. Porque, a partir de um determinado tamanho, quando o bloco aumenta
tambm aumenta o tempo de acesso?
45 / 57
Exerccios
1. Cite alguns problemas bsicos do uso de memria cache e comente
2. Porque no necessrio para o processador saber onde esto fisicamente os
dados quando gera o endereamento?
3. Quais so as trs formas bsicas de mapeamento de memrias cache? Comente
sobre vantagens e desvantagens das mesmas
4. Explique como funciona o mapeamento direto. Para que serve a tag, e para que
serve o bit de validade?
5. Comente sobre o passo 4 (buscar dado no nvel inferior) do algoritmo de acesso
memria cache com mapeamento direto. Fale com relao a tempo para sua
execuo. Detalhe melhor este passo
1. Calcular o mdulo do endereo pelo nmero de posies da cache (ou usar os bits
menos significativos do endereo);
2. Verificar o bit de validade da posio da cache correspondente e se for invlido acusar
miss (ir para 4), seno verificar o Tag;
3. Se Tag diferente do endereo procurado acusar miss (ir para 4), seno ocorre hit. Ler a
posio (fim);
4. Buscar dado no nvel inferior. Colocar na posio e efetuar a leitura (fim)
46 / 57
Exerccios
7. Qual a necessidade do multiplexador no mapeamento direto com blocos?
8. Comente a seguinte frase: Depois de realizado vrios testes, verificamos que
cache, com mapeamento direto, somente interessante se os dados que
compartilham as mesmas reas de cache estiverem bastante distantes na
memria fsica
9. Comente a afirmativa: Para ter melhor desempenho, a escolha do modo de
endereamento depende da aplicao. Descreva aplicaes onde o
mapeamento direto pode ser interessante
10. Existe como a abordagem de mapeamento direto ser realizada dinamicamente?
Ou seja, os dados no tm endereos fixos conhecido em tempo de projeto, mas
sim durante a execuo do programa este endereo calculado
11. Considerando possvel a pergunta acima, quais as conseqncias desta
modalidade de mapeamento direto? Comente analisando caractersticas como:
velocidade de acesso, custos de implementao, flexibilidade da memria cache.
12. Qual a caracterstica bsica de uma memria associativa? Responda
comentando sobre a organizao deste tipo de memria
13. Descreva o funcionamento do mapeamento associativo. Cite uma grande
vantagem? Cite uma grande desvantagem?
14. Porque no mapeamento associativo pode no ser necessrio o uso de bit de
validade?
47 / 57
Exerccios
15. Cite as trs polticas bsicas para substituio de dados em uma memria
associativa. Explique como funciona cada uma delas. Diga vantagens e
desvantagens. Sugira alguma outra poltica e compare com as anteriores
16. Diga qua(l/is) a(s) diferena(s) bsica(s) entre o acesso a dados em cache com
mapeamento direto e mapeamento associativo
17. Comente a afirmao: A grande vantagem do mapeamento associativo frente ao
mapeamento direto est no fato que toda a memria pode ser utilizada
eficientemente como cache. J no mapeamento direto esta eficincia
praticamente inalcanvel
18. Descreva o funcionamento do mapeamento conjunto associativo
19. Dado S como nmero de conjuntos de um mapeamento conjunto associativo.
Porque se S = 1 o mapeamento conjunto associativo se assemelha ao
mapeamento associativo, e se S = nmero de blocos/palavras da cache o
mapeamento conjunto associativo se assemelha ao mapeamento direto.
20. Descreva como funcionam os nveis de associatividade
21. Qual a diferena bsica entre o mapeamento associativo e o mapeamento
conjunto associativo? Apresente vantagens e desvantagens.
48 / 57
Exerccios
22. Compare com relao a vantagens e desvantagens, o mapeamento direto e o
mapeamento conjunto associativo
23. O que diferencia a memria associativa das memrias convencionais? Qual a
aplicao das memrias associativas? Faa um diagrama da arquitetura de uma
memria associativa, explicando o seu funcionamento
24. Na figura abaixo, que relaciona taxa de associatividade com miss-rate,
mostrado que para, caches pequenas, o miss-rate reduz medida que aumenta
a associatividade (nmero de vias). Porque isto acontece? Porque o mesmo
efeito no verificado com caches maiores?
49 / 57
Exerccios
25. Comente as curvas que relacionam tamanho do bloco com miss-rate e tamanho
de cache
26. Comente as trs figuras que relacionam o efeito do tamanho do bloco no tempo
mdio de acesso e no miss-rate
50 / 57
Exerccios
27. Diferencie localidade espacial de localidade temporal. Explique porque os
sistemas de hierarquia de memrias so baseados no princpio de localidade
28. Aponte qual o grfico que melhor representa o efeito do tamanho da memria
cache no hit-rate e diga por qu
51 / 57
Exerccios
29. Considere a seguinte estrutura de memria:
30. O que pode ser alterado na arquitetura de memrias cache para diminuir o missrate? Explique as possibilidades que forem citadas
52 / 57
Exerccios
32. (POSCOMP 2005 - 23) Das afirmaes a seguir, sobre memria cache,
quais so verdadeiras?
I.
II.
III.
IV.
a.
b.
c.
d.
e.
53 / 57
Resposta de Exerccios
32. (POSCOMP 2005 - 23) Das afirmaes a seguir, sobre memria cache,
quais so verdadeiras?
I.
II.
III.
IV.
a.
b.
c.
d.
e.
54 / 57
Exerccios
33. (POSCOMP 2008 - 55) Analise as seguintes afirmativas
I.
55 / 57
Resposta de Exerccios
33. (POSCOMP 2008 - 55) Analise as seguintes afirmativas
I.
56 / 57
Exerccios
33. (POSCOMP 2010 - 33) Um computador apresenta um sistema de
memria organizado em quatro nveis: memrias cache nveis 1 e 2,
memrias RAM principal e secundria. Programas prontos para
execuo so trazidos da memria secundria e transformados em
processos na memria principal. Uma instruo para acessar dados na
memria fornece o endereo real de memria onde se localiza a
informao desejada. A informao ento buscada na cache nvel 1.
Se l no for encontrada, ela buscada no segundo nvel de cache.
No sendo encontrada, a informao finalmente buscada na memria
principal.
Qual o modo de endereamento utilizado?
a) Imediato
b) Indireto
c) Direto
d) Implcito
e) Relativo
57 / 57
Resposta de Exerccios
33. (POSCOMP 2010 - 33) Um computador apresenta um sistema de
memria organizado em quatro nveis: memrias cache nveis 1 e 2,
memrias RAM principal e secundria. Programas prontos para
execuo so trazidos da memria secundria e transformados em
processos na memria principal. Uma instruo para acessar dados na
memria fornece o endereo real de memria onde se localiza a
informao desejada. A informao ento buscada na cache nvel 1.
Se l no for encontrada, ela buscada no segundo nvel de cache.
No sendo encontrada, a informao finalmente buscada na memria
principal.
Qual o modo de endereamento utilizado?
a) Imediato
b) Indireto
c) Direto
d) Implcito
e) Relativo
58 / 57
Exerccios
Refazer o exerccio a seguir, considerando agora o mapeamento conjunto
associativo, com 2 conjuntos. Considere uma memria principal de 256 bytes, e
caches de 4 linhas, cada linha contendo um bloco de 8 bytes, alm do espao para
colocar os bits de controle (bit de validade e tag), se forem necessrios. Dadas as
sequncias de acesso memria principal tabeladas abaixo, preencha as caches
para o caso de mapeamento direto e associativo. Considere a poltica para
substituio LRU. Diga quantos miss e quantos hits aconteceram
Sequncia de acessos (posio representada em hexadecimal)
59 / 57
Exerccios
Mapeamento Direto
BV TAG (3 bits)
0
0
0, 1 110
C8
0, 1 000, 100
10,90
0, 1 000, 100, 000 18,98,18
1
C9
11,91
19,99,19
Mapeamento Associativo
MA (5 bits)
00010, 11001
00011
10010
10011
BV
0,1
0,1
0,1
0,1
BV
CA
CB
CC
CD
CE
CF
12,92
13,93
14,94
15,95
16,96
17,97
1A,9A,1A 1B,9B,1B 1C,9C,1C 1D,9D,1D 1E,9E,1E 1F,9F,1F
0
10, C8
18
90
98
1
11, C9
19
91
99
2
12, CA
1A
92
9A
3
13, CB
1B
93
9B
4
14, CC
1C
94
9C
5
15, CD
1D
95
9D
6
16, CE
1E
96
9E
7
17, CF
1F
97
9F
Hits = , Miss =
2