Você está na página 1de 56

Exerccios Hierarquia de memria

Ivan Saraiva Silva

Universidade Federal do Rio Grande do Norte Centro de Cincias Exatas e da Terra Departamento de Informtica e Matemtica Aplicada DIM0431 Organizao e Arquitetura de Computadores 2008.1

Considere uma memria principal que possui 16 blocos de 8 palavras e uma memria cache que possui 4 blocos de 8 palavras. Sabendo que o mapeamento entre as memrias principal e cache feito de forma direta e que o trace (posio de memria (endereo referenciado) acessada pelo programa) de bloco : 001113322100455560011 1 Calcule a taxa de hit para a poltica FIFO (first in, first out) de substituio de blocos. 2 Calcule a taxa de hit para a poltica LRU (last recently used) de substituio de blocos. Faa tambm para um mapeamento associativo e compare com o resultado obtido para um mapeamento direto. 3 Calcule a taxa de hit para a poltica LFU (last frequently used) de substituio de blocos. 4 Se o tempo de acesso memria cache de 30ns e o tempo de acesso memria de 200 ms, calcule o tempo de acesso hierarquia de memria. 5 Refaa os clculos acima para o mapeamento completamente associativo.

0 1 2 3 4 16 x 8 = 128 palavras 7 bits xx xx xxx


palavra bloco
tag

MC

Estado inicial da memria cache e mapeamento direto memria principal memria cache

MP

0 1 2 3 4 Trace de Bloco: 0 0 1 1 1 3 3 2 2 1 0 0 4 5 5 5 6 0 0 1 1

MC

MC

MISS: HIT:

MP

0 1 2 3 4 Trace de Bloco: 0 0 1 1 1 3 3 2 2 1 0 0 4 5 5 5 6 0 0 1 1

MC

MISS: HIT:

MP

0 1 2 3 4 Trace de Bloco: 0 0 1 1 1 3 3 2 2 1 0 0 4 5 5 5 6 0 0 1 1

MC

MISS: HIT:

MP

0 1 2 3 4 Trace de Bloco: 0 0 1 1 1 3 3 2 2 1 0 0 4 5 5 5 6 0 0 1 1

0 1

MC

MISS: HIT:

MP

0 1 2 3 4 Trace de Bloco: 0 0 1 1 1 3 3 2 2 1 0 0 4 5 5 5 6 0 0 1 1

0 1

MC

MISS: HIT:

MP

0 1 2 3 4 Trace de Bloco: 0 0 1 1 1 3 3 2 2 1 0 0 4 5 5 5 6 0 0 1 1

0 1

MC

MISS: HIT:

MP

0 1 2 3 4 Trace de Bloco: 0 0 1 1 1 3 3 2 2 1 0 0 4 5 5 5 6 0 0 1 1

0 1

3
MC

MISS: HIT:

MP

0 1 2 3 4 Trace de Bloco: 0 0 1 1 1 3 3 2 2 1 0 0 4 5 5 5 6 0 0 1 1

0 1 2 3
MC

MISS: HIT:

MP

0 1 2 3 4 Trace de Bloco: 0 0 1 1 1 3 3 2 2 1 0 0 4 5 5 5 6 0 0 1 1

0 1 2 3
MC

MISS: HIT:

MP

0 1 2 3 4 Trace de Bloco: 0 0 1 1 1 3 3 2 2 1 0 0 4 5 5 5 6 0 0 1 1

0 1 2 3
MC

MISS: HIT:

MP

0 1 2 3 4 Trace de Bloco: 0 0 1 1 1 3 3 2 2 1 0 0 4 5 5 5 6 0 0 1 1

0 1 2 3
MC

MISS: HIT:

MP

0 1 2 3 4 Trace de Bloco: 0 0 1 1 1 3 3 2 2 1 0 0 4 5 5 5 6 0 0 1 1

0 1 2 3
MC

MISS: HIT:

MP

0 1 2 3 4 Problema: a cache est sem espao. E agora? Trace de Bloco: 0 0 1 1 1 3 3 2 2 1 0 0 4 5 5 5 6 0 0 1 1

0 1 2 3
MC

MISS: HIT:

MP

0 1 2 3 4 Problema: a cache est sem espao. E agora? Trace de Bloco: 0 0 1 1 1 3 3 2 2 1 0 0 4 5 5 5 6 0 0 1 1

0 1 2 3
MC

MISS: HIT:

MP
Usar uma poltica de substituio? No Por qu? O mapeamento direto praticamente deixa qualquer poltica de substituio incua.

0 1 2 3 4 Problema: a cache est sem espao. E agora? Trace de Bloco: 0 0 1 1 1 3 3 2 2 1 0 0 4 5 5 5 6 0 0 1 1

0 1 2 3
MC

MISS: HIT:

MP
Usar uma poltica de substituio? No Por qu? O mapeamento direto praticamente deixa qualquer poltica de substituio incua.

0 1 2 3 4 Problema: a cache est sem espao. E agora? Trace de Bloco: 0 0 1 1 1 3 3 2 2 1 0 0 4 5 5 5 6 0 0 1 1

0 1 2 3
MC

MISS: HIT:

MP
Usar uma poltica de substituio? No Por qu? O mapeamento direto praticamente deixa qualquer poltica de substituio incua.

0 1 2 3 4 Problema: a cache est sem espao. E agora? Trace de Bloco: 0 0 1 1 1 3 3 2 2 1 0 0 4 5 5 5 6 0 0 1 1

0 1 2 3
MC

MISS: HIT:

MP
Usar uma poltica de substituio? No Por qu? O mapeamento direto praticamente deixa qualquer poltica de substituio incua.

0 1 2 3 4 Mesmo problema Trace de Bloco: 0 0 1 1 1 3 3 2 2 1 0 0 4 5 5 5 6 0 0 1 1

4 5 2 3
MC

MISS: HIT:

MP

0 1 2 3 4 Trace de Bloco: 0 0 1 1 1 3 3 2 2 1 0 0 4 5 5 5 6 0 0 1 1

4 5 2 3
MC

MISS: HIT:

MP

0 1 2 3 4 Trace de Bloco: 0 0 1 1 1 3 3 2 2 1 0 0 4 5 5 5 6 0 0 1 1

4 5 2 3
MC

MISS: HIT:

MP

0 1 2 3 4 Mesmo problema Trace de Bloco: 0 0 1 1 1 3 3 2 2 1 0 0 4 5 5 5 6 0 0 1 1

4 5 2 3
MC

MISS: HIT:

MP

0 1 2 3 4 Trace de Bloco: 0 0 1 1 1 3 3 2 2 1 0 0 4 5 5 5 6 0 0 1 1

4 5 6 3
MC

MISS: HIT:

MP

0 1 2 3 4 Trace de Bloco: 0 0 1 1 1 3 3 2 2 1 0 0 4 5 5 5 6 0 0 1 1

0 5 6 3
MC

MISS: HIT:

MP

0 1 2 3 4 Trace de Bloco: 0 0 1 1 1 3 3 2 2 1 0 0 4 5 5 5 6 0 0 1 1

0 5 6 3
MC

MISS: HIT:

MP

0 1 2 3 4 Trace de Bloco: 0 0 1 1 1 3 3 2 2 1 0 0 4 5 5 5 6 0 0 1 1

0 1 6 3
MC

MISS: HIT:

MP

0 1 2 3 4 Trace de Bloco: 0 0 1 1 1 3 3 2 2 1 0 0 4 5 5 5 6 0 0 1 1

0 1 6 3
MC

MISS: HIT:

MP

Taxa de HIT : 12 / 21 0,571 = 57,1% Taxa de MISS: 9 / 21 0,429 = 42,9%

Vejamos como ocorre o mapeamento memria principal memria cache: 0 1 2 3 4


Lgica combinatria de acesso memria principal entrada de seleo

xx xx XXX

00 MISS = 10
Lgica combinatria de acesso memria cache

01

11
Lgica combinatria para comparao

MC HIT

MP

Conforme dito anteriormente, como estamos utilizando o mtodo de mapeamento direto dos blocos, qualquer poltica de substituio de blocos torna-se incua diante deste tipo de mapeamento. Portanto, independentemente do uso das polticas de substituio FIFO, LRU ou LFU, os resultados obtidos so os mesmos obtidos pelo simples mapeamento direto.

Mas...
E se fosse utilizado o mapeamento associativo? Os resultados seriam os mesmos?

Haveria melhora com relao ao mapeamento direto ou no?

Vamos mudar um pouco o problema, utilizando o mapeamento associativo juntamente com a poltica de substituio LRU para efeitos comparativos

Lembrete: Na poltica de substituio LRU (last recently used), substitudo o ltimo bloco na lista dos mais recentemente usados. Portanto, necessrio haver uma estrutura auxiliar (EAUX) que mantenha o controle da ordem de utilizao dos blocos.

0 1 2 3 4 Trace de Bloco: 0 0 1 1 1 3 3 2 2 1 0 0 4 5 5 5 6 0 0 1 1

MC

EAUX

MISS: HIT:

MP

0 1 2 3 4 0 Trace de Bloco: 0 0 1 1 1 3 3 2 2 1 0 0 4 5 5 5 6 0 0 1 1

MC

EAUX

MISS: HIT:

MP

0 1 2 3 4 0 Trace de Bloco: 0 0 1 1 1 3 3 2 2 1 0 0 4 5 5 5 6 0 0 1 1

MC

EAUX

MISS: HIT:

MP

0 1 2 3 4 1 0 Trace de Bloco: 0 0 1 1 1 3 3 2 2 1 0 0 4 5 5 5 6 0 0 1 1

MC

EAUX

MISS: HIT:

MP

0 1 2 3 4 1 0 Trace de Bloco: 0 0 1 1 1 3 3 2 2 1 0 0 4 5 5 5 6 0 0 1 1

MC

EAUX

MISS: HIT:

MP

0 1 2 3 4 1 0 Trace de Bloco: 0 0 1 1 1 3 3 2 2 1 0 0 4 5 5 5 6 0 0 1 1

MC

EAUX

MISS: HIT:

MP

0 1 2 3 4 3 1 0 Trace de Bloco: 0 0 1 1 1 3 3 2 2 1 0 0 4 5 5 5 6 0 0 1 1

MC

EAUX

MISS: HIT:

MP

0 1 2 3 4 3 1 0 Trace de Bloco: 0 0 1 1 1 3 3 2 2 1 0 0 4 5 5 5 6 0 0 1 1

MC

EAUX

MISS: HIT:

MP

0 1 2 3 4 2 3 1 0 MC EAUX Trace de Bloco: 0 0 1 1 1 3 3 2 2 1 0 0 4 5 5 5 6 0 0 1 1

MISS: HIT:

MP

0 1 2 3 4 1 2 3 0 MC EAUX Trace de Bloco: 0 0 1 1 1 3 3 2 2 1 0 0 4 5 5 5 6 0 0 1 1

MISS: HIT:

MP

0 1 2 3 4 0 1 2 3 MC EAUX Trace de Bloco: 0 0 1 1 1 3 3 2 2 1 0 0 4 5 5 5 6 0 0 1 1

MISS: HIT:

MP

0 1 2 3 4 0 1 2 3 MC EAUX Trace de Bloco: 0 0 1 1 1 3 3 2 2 1 0 0 4 5 5 5 6 0 0 1 1

MISS: HIT:

MP

0 1 2 3 4 0 1 2 3 MC EAUX Problema: a cache est sem espao. E agora? Trace de Bloco: 0 0 1 1 1 3 3 2 2 1 0 0 4 5 5 5 6 0 0 1 1

MISS: HIT:

MP

0 1 2 3 4 4 1 2 3 MC MC 4 0 1 2 EAUX Mesmo problema Trace de Bloco: 0 0 1 1 1 3 3 2 2 1 0 0 4 5 5 5 6 0 0 1 1

MISS: HIT:

MP

0 1 2 3 4 5 1 2 3 MC MC 5 4 0 1 EAUX Trace de Bloco: 0 0 1 1 1 3 3 2 2 1 0 0 4 5 5 5 6 0 0 1 1

MISS: HIT:

MP

0 1 2 3 4 5 1 2 3 MC MC 5 4 0 1 EAUX Trace de Bloco: 0 0 1 1 1 3 3 2 2 1 0 0 4 5 5 5 6 0 0 1 1

MISS: HIT:

MP

0 1 2 3 4 5 4 0 1 MC EAUX Mesmo problema Trace de Bloco: 0 0 1 1 1 3 3 2 2 1 0 0 4 5 5 5 6 0 0 1 1

MISS: HIT:

MP

0 1 2 3 4 6 5 4 0 MC EAUX Trace de Bloco: 0 0 1 1 1 3 3 2 2 1 0 0 4 5 5 5 6 0 0 1 1

MISS: HIT:

MP

0 1 2 3 4 0 6 5 4 MC EAUX Trace de Bloco: 0 0 1 1 1 3 3 2 2 1 0 0 4 5 5 5 6 0 0 1 1

MISS: HIT:

MP

0 1 2 3 4 0 6 5 4 MC EAUX Trace de Bloco: 0 0 1 1 1 3 3 2 2 1 0 0 4 5 5 5 6 0 0 1 1

MISS: HIT:

MP

0 1 2 3 4 1 0 6 5 MC EAUX Trace de Bloco: 0 0 1 1 1 3 3 2 2 1 0 0 4 5 5 5 6 0 0 1 1

MISS: HIT:

MP

0 1 2 3 4 1 0 6 5 MC EAUX Trace de Bloco: 0 0 1 1 1 3 3 2 2 1 0 0 4 5 5 5 6 0 0 1 1

MISS: HIT:

MP

Taxa de HIT : 13 / 21 0,619 = 61,9% Taxa de MISS: 8 / 21 0,391 = 39,1%

Embora tenhamos ganho com relao a taxa de hit (acerto), precisamos de uma estrutura auxiliar? Assim, houve, de fato, um ganho?

Resposta: Embora tenha sido necessria a alocao de uma estrutura auxiliar a fim de manter a ordem dos blocos mais recentemente usados, houve sim ganho com relao tcnica anterior. Tal ganho referese a ganho em tempo de acesso, uma vez que o acesso memria cache, como vimos, menor que o tempo de acesso memria principal.

Vejamos como ocorre o processo: 0 1

2
3 4
Lgica combinatria de acesso memria principal

xxxx XXX

MISS =
Lgica combinatria de acesso memria cache Lgica combinatria para comparao

HIT

MP

Perceba que, agora, a tag dos blocos da cache possui 4 bits, assim como so necessrios 4 bits para realizar o mapeamento da cache para a memria principal; antes s eram necessrios apenas 2 bits.