Você está na página 1de 59

ARQUITETURAS DE COMPUTADORES II

Gerncia de Memrias Cache


(Mapeamento de Endereos)

Prof. Csar Augusto M. Marcon

2 / 57

Introduo a Caches

Funcionalidade
rea de memria rpida e com informaes dinmicas

Cache s pode ter parte dos dados do nvel mais abaixo


Tamanho menor

Problemas

Como identificar se o dado procurado est na cache?


Se estiver, como acessar de forma rpida?
Se no estiver, como buscar eficientemente de nveis inferiores?
Qual dado tirar da cache para colocar o novo dado?

Processador no sabe qual memria fsica tem o dado


Gera apenas endereos e a hierarquia se encarrega de acessar a
informao endereada

3 / 57

Mapeamento de Endereos em Memria Cache


Como fazer para pesquisar um dado na cache?
Fazer cache com todos endereos no faz sentido
Efetuar varredura seqencial na cache leva muito tempo

Soluo
Fazer mapeamento de endereos

Objetivo
Relacionar informaes (dados e instrues) da memria
principal com posies da cache

Formas de mapeamento de memrias cache


Direto
Associativo
Conjunto associativo

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

Introduo ao Mapeamento Direto


Forma mais simples de mapeamento
Posio na cache depende do endereo da palavra na
memria principal (MP)
Cada palavra possui uma posio fixa

Grupo de palavras mapeado na mesma posio da


cache

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

Esquema de Mapeamento Direto

TAG (rtulo) para cada posio da cache


identifica qual das palavras est na cache
Bit de validade posio da cache est
ocupada ou contm lixo
Poderiam ser usados os bits mais significativos
do endereamento ao invs dos bits menos
significativos? Qual a conseqncia?

7 / 57

Acesso a Cache com Mapeamento Direto


Passos para um acesso
1. Calcular o mod do endereo pelo nmero de posies da cache Ex. usar
os bits menos significativos do endereo
2. Se bit de validade da posio for vlido
Verificar Tag

Seno
Acusar miss
Ir para 4

3. Se Tag diferente de endereo


Acusar miss
Ir para 4

Seno
Ler posio (hit)
Ir para 7

4.
5.
6.
7.

Buscar dado no nvel inferior


Colocar na posio
Efetuar leitura
Fim

8 / 57

Mapeamento Direto Bit validade e Tag


Diviso de bits no registrador de endereamento
Exemplo de uma cache com 1024 linhas (210) com palavra de 32 bits

9 / 57

Mapeamento Direto Transferncia de Blocos

Transferncia de blocos entre nveis de memria


Exemplo da diviso de blocos em uma cache com 1024 linhas (bloco com 4
palavras de 32 bits)

O que ganho ao
utilizar blocos ao
invs de palavras?

10 / 57

Mapeamento Direto - Exerccios

1. Considerando um espao de endereamento de 1 Giga. Como ficaria a


diviso de bits para uma cache de 2048 posies que trabalhe com blocos
de 8 palavras?

2. Quanto tem efetivamente de dados nessa cache, considerando palavras


de 32 bits?

(Bit de validade + Tag + Dados) / Dados


(1 + 16 + (8*32)) / (8*32)
273 bits / 256 bits
256 / 273 * 100% = 93.77%

11 / 57

Mapeamento Direto - Exerccios

3. Supor as seguintes caractersticas: (i) Memria principal de 2GBytes, com


palavras de 32 bits; (ii) Cache com 64Kbits; (iii) Blocos de 16 palavras

Mostre como ficar distribuda a cache e o formato da palavra de endereo


lineSize (lS)

tagSize(tS) lineAddressSize(lAS) blockAddressSize(bAS)

blockSize (bS) = 2bAS * wS


vbSize
(vbS)

tagSize
(tS)

wordSize wordSize wordSize


(wS)
(wS)
(wS)

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

O formato de instruo pode ser obtido com as relaes que


seguem:

cacheSize lineSize numberOfLines

lineSize = numberOfWordInsideBlocks wordSize + tagSize + bitValiditySize


numberOfLines = 2lineAddressSize
validityBitSize = 1
cacheSize (numberOfWordInsideBlocks wordSize + tagSize + 1) 2lineAddressSize

addressSize = tagSize + lineAddressSize + blockAddressSize


addressSize = log2(memorySize)
blockAddressSize = log2(numberOfWordInsideBlocks)
log2(memorySize) = tagSize + lineAddressSize + log2(numberOfWordInsideBlocks)
tagSize = log2(memorySize) - lineAddressSize - log2(numberOfWordInsideBlocks)

Mapeamento Direto
Obtendo o formato do Endereamento

13 / 57

Voltando ao problema:

Memria principal de 8GBytes, com palavras de 32 bits (word = 4 bytes)

Cache com 64Kbits

memorySize = 2GWords
cacheSize = 64KBits = 64 1024 = 65536 bits

Blocos de 16 palavras

numberOfWordInsideBlocks = 16
blockAddressSize = log2(16) = 4

Aplicando as relaes, teremos:


cacheSize (numberOfWordInsideBlocks wordSize + tagSize + 1) 2lineAddressSize

65536 (16 32 + tagSize + 1) 2lineAddressSize


65536 (512 + tagSize + 1) 2lineAddressSize
65536 (513 + tagSize) 2lineAddressSize

tagSize = log2(memorySize) - lineAddressSize - log2(numberOfWordInsideBlocks)

tagSize = log2(2 Giga) - lineAddressSize - 4


tagSize = 31 - lineAddressSize - 4
tagSize = 27 - lineAddressSize

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

A soluo da inequao pode ser feita atravs de tentativa e


erro, de forma a chegar ao valor que mais se aproxima da
soluo:
lineAddressSize = 6

65536 (540 - 6) 26
65536 34176

tagSize = 27 - lineAddressSize

tagSize = 27 - 6
tagSize = 21

Assim, o formato do endereamento fica:


tagSize = 21

lineAddressSize = 6

blockAddressSize = 4

15 / 57

Mapeamento Direto - Concluses e Questes


Vantagens do mapeamento direto

Hardware barato
Procura simples (posio fixa)
No existe escolha da vtima ( dada pelo mdulo)
Simplicidade / Velocidade

Desvantagens do mapeamento direto


Pode ter mau aproveitamento das posies da cache (dependendo
dos endereos gerados)
Usa parte da cache para controle

Como melhorar o mapeamento apresentado?


Como retirar dependncia entre endereo na memria
e posio da cache sem comprometer desempenho da
procura?

16 / 57

Exerccios
1.

(POSCOMP 2011 - 30) Um sistema de computador possui um mapa de


memria de 4 Gbytes, usando endereamento a byte e uma memria
cache com organizao de mapeamento direto. A cache tem
capacidade de armazenar at 1.024 palavras de 32 bits provenientes
do mapa de memria. Assuma que a cache sempre escrita de forma
atmica com quatro bytes vindos de um endereo de memria alinhado
em uma fronteira de palavra de 32 bits, e que ela usa 1 bit de validade
por linha de cache. Neste caso, as dimenses do rtulo (tag) da cache,
do ndice e o tamanho da cache so, respectivamente
a) 12 bits, 18 bits e 54.272 bits
b) 14 bits, 18 bits e 56.320 bits
c) 20 bits, 10 bits e 54.272 bits
d) 20 bits, 12 bits e 54.272 bits
e) 22 bits, 10 bits e 56.320 bits

17 / 57

Resposta de Exerccios
1.

(POSCOMP 2011 - 30) Um sistema de computador possui um mapa de


memria de 4 Gbytes, usando endereamento a byte e uma memria
cache com organizao de mapeamento direto. A cache tem
capacidade de armazenar at 1.024 palavras de 32 bits provenientes
do mapa de memria. Assuma que a cache sempre escrita de forma
atmica com quatro bytes vindos de um endereo de memria alinhado
em uma fronteira de palavra de 32 bits, e que ela usa 1 bit de validade
por linha de cache. Neste caso, as dimenses do rtulo (tag) da cache,
do ndice e o tamanho da cache so, respectivamente
a) 12 bits, 18 bits e 54.272 bits
b) 14 bits, 18 bits e 56.320 bits
c) 20 bits, 10 bits e 54.272 bits
d) 20 bits, 12 bits e 54.272 bits
e) 22 bits, 10 bits e 56.320 bits

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

Introduo ao Mapeamento Associativo

Endereo da MP em qualquer posio da cache


Tag no fica mais na cache e sim em memria especial (memria
associativa)
Pode ter bit de validade ou usar tag com valor invlido para
determinar se posio tem uma informao vlida

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?

Soluo para procurar


Procurar em paralelo
Usar memria associativa
Memria cara e de tamanho limitado

20 / 57

Esquema de Memria para Mapeamento


Associativo Pesquisa em Paralelo

Endereo
proveniente do
processador

Endereo na
memria
associativa

Se todos os
bits dos
endereos
forem iguais

21 / 57

Esquema Bsico de Mapeamento Associativo - Tag

Diviso de bits no registrador de endereamento


Exemplo de uma cache com 1024 posies (210) com palavra de 32 bits

22 / 57

Mapeamento Associativo Transferncia de


Blocos
Transferncia de blocos entre nveis de memria
Exemplo da diviso de blocos em cache de 1024 linhas (bloco com 4 palavras
de 32 bits)

23 / 57

Mapeamento Associativo Substituio de


Dados na Cache

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

LFU (Least Frequent Used)


Posio da cache menos usada substituda Escolha precisa
mecanismo de contagem para cada acesso

LRU (Least Recent Used)


Posio da cache usada a mais tempo ser substituda
Escolha precisa varivel de tempo a cada acesso e comparao

24 / 57

Mapeamento Associativo Algoritmo do Relgio

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

Acesso a Cache com Mapeamento Associativo

Passos para um acesso


1. Alimentar memria associativa com Tag procurado (comparao)
2. Se Tag est na memria associativa
(Hit) Acessar memria cache com ndice fornecido pela memria associativa
Ir para 7

Seno
Acusar miss

3. Se no existir posio livre na cache


Escolher endereo para substituir de acordo com poltica estabelecida (e.g.
LRU)

4.
5.
6.
7.
8.

Buscar dado no nvel inferior


Colocar na posio livre ou escolhida da memria cache
Cadastrar posio na memria associativa para pesquisas futuras
Efetuar leitura
Fim

26 / 57

Mapeamento Associativo - Exerccios

1. Considerando espao de endereamento de 256 Mega palavras.


Como ficaria a diviso de bits do endereo para uma cache de
2048 posies e que trabalhe com blocos de 8 palavras?

2. Quanto tem efetivamente de dados nessa cache?


100% (no considerando bit de validade)
3. Qual o tamanho da memria associativa?
Tamanho = 2048 * 25 (tag)
= 51200 bits / 8
= 6400 bytes / 1024
= 6,25 Kbytes

27 / 57

Mapeamento Associativo - Concluses e Questes


Vantagens do mapeamento associativo
Melhor distribuio da informao na cache
Melhor aproveitamento da cache Praticamente 100% de
aproveitamento
Tags no ocupam espao da cache (esto na memria associativa)

Desvantagens
Memria associativa tem alto custo e tamanho limitado
Limita nmero de linhas da cache

Necessita poltica de substituio


Pode ocorrer escolhas inadequadas
Gasta tempo

Limite de tamanho da cache devido pesquisa na


memria associativa uma restrio muito forte
Tendncia aumentar a cache
Qual seria outra possibilidade?

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)

Tabela auxiliar com a numerao da memria principal (256 bytes, blocos de 8


bytes, dividida em 4 partes blocos de cada parte so mapeados em uma linha)

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

Hits = 14, Miss = 6


Mapeamento Associativo
MA (5 bits)
00010, 11001
00011
10010
10011

Hits = 15, Miss = 5

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

Introduo ao Mapeamento Conjunto Associativo

Compromisso entre mapeamento direto e totalmente


associativo
Cache dividida em S conjuntos de N blocos/palavras
Se S = 1 mapeamento associativo
Se S = nmero de blocos/palavras da cache mapeamento direto

Pesquisa dentro do conjunto


Endereo i, da memria principal, pode mapear para endereos no
conjunto i mod S, da cache

Necessita de poltica de substituio quando ocorre


cache miss
Caso conjunto esteja cheio quem tirar?
A substituio deve ser necessariamente dentro do conjunto

35 / 57

Mapeamento Conjunto Associativo - Tag


Diviso de bits no registrador de endereamento
Exemplo de cache com 1024 posies (210) com palavra de 32 bits
e 2 conjuntos (S=2)

Acesso Cache com Mapeamento


Conjunto Associativo

36 / 57

Passos para um acesso


1. Calcular resto da diviso inteira do endereo pelo nmero de conjuntos S
Ex. usar bits menos significativos de endereo
2. Alimentar memria associativa do conjunto com Tag (Comparao)
3. Se Tag est na memria associativa
(Hit) Acessar memria cache com ndice fornecido pela memria associativa
Ir para 8

Seno
Acusar miss

4. Se no existir posio livre no conjunto cache


Escolher endereo para substituir de acordo com poltica estabelecida

5.
6.
7.
8.
9.

Buscar dado no nvel inferior


Colocar dado na posio livre ou escolhida da cahe
Cadastrar posio na memria associativa para pesquisas futuras
Efetuar leitura
Fim

37 / 57

Mapeamento Conjunto Associativo - Exerccios

Considerando uma cache com 1024 posies (2 10) com palavra de


32 bits, um espao de endereamento de 4 Gigabytes (2 32), dois
conjuntos associativos e Tag com endereo invlido para marcar
dados invlidos, responda as perguntas que seguem

1. Quanto tem efetivamente de dados nessa cache?


100%
2. Qual tamanho de cada memria associativa?
Tamanho
= 1024 (linhas) / 2 (cj.) * 31 (tag)
= 512 * 31 bits = 15872 bits
= 15872 bits / 8 = 1984 bytes
= 1984 bytes / 1024 = 1,93 Kbytes
3. Como ficaria a mesma cache com 4 conjuntos (S=4)?

38 / 57

Mapeamento Conjunto Associativo - Exerccios

Esquema com 4 conjuntos associativos

39 / 57

Mapeamento Conjunto Associativo - Exerccios


4. Qual tamanho de cada uma das 4 memrias
associativas?
Tamanho
= 256 * 30 (tag)
= 7680 bits / 8
= 960 bytes / 1024
= 0,94 Kbytes
5. Como ficaria diviso do endereo de cache de 4
conjuntos com 2048 posies (bloco com 4 palavras de
32 bits)?

Mapeamento Conjunto Associativo


Nveis de Associatividade

40 / 57

Associatividade da cache dada pelo nmero de vias (ways)


Exemplo: cache de 8 posies pode ter 1 a 8 vias
Vias (Ways)

Mapeamento

Direto

Conjunto-associativo (4 cj)

Conjunto-associativo (2 cj)

Associativo

Esquema

Quantos conjuntos possui cache L1 4-Way de 64 Kbytes e com


processador Ultra Sparc III (assumir bloco de 32 palavras de 64 bits)?
Tamanho da linha da cache = 32 * 64 b = 2048 b = 256 B = 0,25 KB
64 KB / 0,25 KB = 256 linhas / 4 (4-Way 4 linhas por cj) = 64 cj

41 / 57

Mapeamento Conjunto Associativo


Nveis de Associatividade e Miss Rate

42 / 57

Mapeamento Conjunto Associativo


Vantagens e Desvantagens

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

Mapeamento Conjunto Associativo


Miss Rate versus Tamanho do Bloco

44 / 57

Mapeamento Conjunto Associativo


O Efeito do Tamanho do Bloco

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)

6. Porque o mapeamento direto to rpido/simples para acessar um dado?


Comente, descrevendo os mecanismos necessrios para o seu funcionamento

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:

Memria principal: 1 MByte


Memria cache: 16 Kbytes
Tamanho do bloco na cache: 32 palavras
Tamanho da palavra: 1 Byte

Quantos blocos tm a memria cache? Mostre o clculo e explique


Como formado o endereo para o mapeamento direto? Explique com diagramas
Qual a rea necessria para armazenar os TAGs, em Bytes?
Qual a desvantagem do mapeamento direto?
Como seria a formao para o mapeamento conjunto associativo 4-way (4 blocos em cada
conjunto)? Explique com diagramas

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.

Numa estrutura totalmente associativa, um bloco de memria pode ser


mapeado em qualquer slot do cache.
O campo tag do endereo usado para identificar um bloco vlido no cache,
junto com o campo de ndice.
Um cache de nvel 2 serve para reduzir a penalidade no caso de falta no nvel 1.
O esquema de substituio LRU o mais usado para a estrutura de
mapeamento direto.
Somente as afirmaes (I), (III) e (IV).
Somente as afirmaes (II), (III) e (IV).
Somente as afirmaes (I) e (II).
Somente as afirmaes (I), (II) e (III).
Somente as afirmaes (II) e (III).

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.

Numa estrutura totalmente associativa, um bloco de memria pode ser


mapeado em qualquer slot do cache.
O campo tag do endereo usado para identificar um bloco vlido no cache,
junto com o campo de ndice.
Um cache de nvel 2 serve para reduzir a penalidade no caso de falta no nvel 1.
O esquema de substituio LRU o mais usado para a estrutura de
mapeamento direto.
Somente as afirmaes (I), (III) e (IV).
Somente as afirmaes (II), (III) e (IV).
Somente as afirmaes (I) e (II).
Somente as afirmaes (I), (II) e (III).
Somente as afirmaes (II) e (III).

54 / 57

Exerccios
33. (POSCOMP 2008 - 55) Analise as seguintes afirmativas
I.

O processador que apresenta o melhor desempenho sempre aquele que


tem a freqncia de relgio mais alta.
II. A tcnica de pipeline utilizada para aumentar o desempenho em
processadores. Dessa forma, o pipeline alivia o tempo de latncia das
instrues.
III. A maneira mais simples de aumentar a taxa de acertos em memria cache
aumentar a sua capacidade.
IV. Em arquiteturas superescalares, os efeitos das dependncias e
antidependncias de dados so reduzidos na etapa de renomeao de
registradores.

A anlise permite concluir que:


a)
b)
c)
d)
e)

Todas as afirmativas so verdadeiras.


Somente as afirmativas II e III so verdadeiras.
Somente as afirmativas III e IV so verdadeiras.
Somente as afirmativas II, III e IV so verdadeiras.
Nenhuma das afirmativas verdadeira.

55 / 57

Resposta de Exerccios
33. (POSCOMP 2008 - 55) Analise as seguintes afirmativas
I.

O processador que apresenta o melhor desempenho sempre aquele que


tem a freqncia de relgio mais alta.
II. A tcnica de pipeline utilizada para aumentar o desempenho em
processadores. Dessa forma, o pipeline alivia o tempo de latncia das
instrues.
III. A maneira mais simples de aumentar a taxa de acertos em memria cache
aumentar a sua capacidade.
IV. Em arquiteturas superescalares, os efeitos das dependncias e
antidependncias de dados so reduzidos na etapa de renomeao de
registradores.

A anlise permite concluir que:


a)
b)
c)
d)
e)

Todas as afirmativas so verdadeiras.


Somente as afirmativas II e III so verdadeiras.
Somente as afirmativas III e IV so verdadeiras.
Somente as afirmativas II, III e IV so verdadeiras.
Nenhuma das afirmativas verdadeira.

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)

Tabela auxiliar com a numerao da memria principal (256 bytes, blocos de 8


bytes, dividida em 4 partes blocos de cada parte so mapeados em uma linha)

59 / 57

Exerccios
Mapeamento Direto

Hits = 14, Miss = 6

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

Hits = 15, Miss = 5

0
10, C8
18
90
98

1
11, C9
19
91
99

2
12, CA
1A
92
9A

Mapeamento Conjunto Associativo


MA (4 bits)

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

Você também pode gostar