Sei sulla pagina 1di 6

FACULDADE COTEMIG BACHARELADO EM SISTEMAS DE INFORMAO

6a Lista de Exerccios 3 Perodo Disciplina: Arquitetura e Organizao de Computadores Professor(a): Luciana Carla Peixoto Barbosa Ferraz Slides: 12 Hierarquia de Memria 1) Considere as tcnicas de mapeamento de cache direta e associativa. Pode acontecer de a memria cache estar parcialmente vazia e mesmo assim ocorrer substituio de cache nas tcnicas citadas? Explique. Isto acontece somente na tcnica de mapeamento direta onde um bloco da RAM s pode ser armazenado em uma determinada linha da cache. Se a linha que ir armazenar o bloco ausente estiver ocupada, no importa se a cache est quase vazia, acontecer uma substituio. 2) Considere a tcnica de mapeamento associativa por conjunto de N posies. O que acontece se N for um nmero grande? e se N for um nmero pequeno? Na tcnica associativa por conjunto um bloco da RAM pode fica em qualquer uma das N linhas do conjunto onde ele est associado. Se o N for grande, a quantidade de linhas dentro de um conjunto grande e a tcnica ser semelhante tcnica associativa, pois ser grande o nmero de linhas onde o bloco poder ficar no conjunto. Se o N for pequeno, a tcnica ser semelhante tcnica de mapeamento direta, pois o conjunto ter pouqussimas linhas, aumentando a disputa de blocos por linhas dentro de um conjunto. 3) Faa uma comparao entre as trs tcnicas de mapeamento de cache em relao ao nmero de faltas, tempo de localizao de um bloco e tempo de transferncia de um bloco para a memria cache. Explique.
Direta Maior, pois h uma disputa muito grande de blocos pela mesma linha, aumentando a chance de blocos ausentes. Associativa Menor, pois um bloco pode ficar em qualquer linha, no tendo disputa de blocos por linha. Lento, pois necessrio pesquisar todas as linhas, ou seja, consultar todas as TAGS para localizar o bloco que pode estar em qualquer linha. Associativa por conjunto Mdio, pois h uma disputa de blocos por um conjunto de linhas e no s por uma linha como o caso da tcnica direta. Mdio, pois a localizao do conjunto imediata mas haver um busca em todas as linhas do conjunto.

Nmero de faltas

Tempo de localizao

Imediato, pois um bloco s pode estar em uma linha. Basta consultar a TAG da linha em questo para saber se o bloco est l.

Tempo de transf. do bloco da RAM para cache

O tempo de tranf. de um bloco qualquer da RAM para a cache no depende da tcnica de mapeamento da cache e sim da velocidade da RAM e da velocidade do barramento que liga a RAM ao processador.

4) Considere um computador com uma memria principal (RAM) de 512M bytes dividida em 4M blocos. Esta memria est ligada a uma memria cache de 1024 linhas atravs da tcnica de mapeamento direto. Qual o tamanho, em bits ou bytes, desta memria cache? O tamanho de uma memria cache qualquer dado por: quantidade de linhas X tamanho da linha. O tamanho da linha varia de uma tcnica para outra, pois o tamanho do campo TAG ir variar. O tamanho da linha dado por: tamanho do TAG + tamanho do bloco (ver slide 23). Primeiro passo calcular o tamanho da TAG. No caso da tcnica direta, o tamanho da TAG dado por 2x bits= quantidade de blocos por linha. A quantidade de blocos e quantidade de linha foram dadas no enunciado do exerccio: 2xbits = 4M blocos/1024 linhas 2x bits = (22 x 220) blocos/210 linhas 2x bits = 222 blocos/210 linhas 2x bits = 212 blocos/linha X = 12 bits Ento o tamanho da cache : quantidade de linhas X tamanho da linha 1024 x (tamanho tag + tamanho bloco) 1024 x (12 bits + no temos o tamanho do bloco, vamos calcular) Tamanho do bloco: tamanho da RAM/ quantidade de blocos Tamanho do bloco: 512 M bytes/ 4 M Tamanho do bloco: 29 M bytes/ 22 M Tamanho do bloco: 27 bytes = 128 bytes Voltando para o clculo do tamanho da cache: 1024 x (12 bits + 128 bytes) No podemos somar bits com bytes, transformar tudo para bits ou para bytes: 1024 x (12 bits + 1024 bits) 1024 x 1036 bits 1.060.864 bits ou 132.608 bytes 5) Considere um sistema de computao que possui uma MP com 1G bytes. Para criar um sistema de controle e funcionamento da sua memria cache, a MP dividida em blocos de 32 bytes cada. A memria cache possui 16 linhas e do tipo mapeamento associativo. Qual o tamanho da memria cache? O tamanho de uma memria cache qualquer dado por: quantidade de linhas X tamanho da linha. Primeiro passo calcular o tamanho da TAG. No caso da tcnica associativa, o tamanho da TAG dado por 2x bits= quantidade de blocos. Calculando a quantidade de blocos com os dados do enunciado do exerccio: Quantidade de blocos = tamanho da RAM/tamanho bloco Quantidade de blocos = 1G bytes/32 bytes Quantidade de blocos = 230 bytes/25 bytes Quantidade de blocos = 225 Voltando para o clculo do tamanho da tag: 2x bits= quantidade de blocos 2x bits= 225 X = 25 bits

Calculando tamanho da cache: Quantidade de linhas X tamanho da linha 16 x (tamanho tag + tamanho bloco) 16 x (25 bits + 32 bytes) No podemos somar bits com bytes, transformar tudo para bits ou para bytes: 16 x (25 bits + 256 bits) 16 x 281 bits 4496 bits ou 562 bytes 6) Considere uma memria cache de 256 linhas associada a uma memria principal dividida em 8M blocos de 32 bytes. a. Qual seria o tamanho da memria cache (em bits ou bytes) se a tcnica de mapeamento fosse direta? Tamanho da cache = Quantidade de linhas x (tamanho tag + tamanho bloco) Tamanho da cache = 256 x (tamanho tag + 32 bytes) Calculando tamanho da tag: 2x bits= quantidade de blocos por linha 2xbits = 8M blocos/256 linhas 2x bits = (23 x 220) blocos/28 linhas 2x bits = 223 blocos/28 linhas 2x bits = 215 blocos/linha X = 15 bits Ento: Tamanho da cache = 256 x (15 bits + 32 bytes) Tamanho da cache = 256 x (15 bits + 256 bits) Tamanho da cache = 256 x 271 bits Tamanho da cache = 69.376 bits ou 8.672 bytes b. Qual seria o tamanho da memria cache (em bits ou bytes) se a tcnica de mapeamento fosse associativa? Tamanho da cache = Quantidade de linhas x (tamanho tag + tamanho bloco) Tamanho da cache = 256 x (tamanho tag + 32 bytes) Calculando tamanho da tag: 2x bits= quantidade de blocos 2xbits = 8M blocos 2x bits = (23 x 220) blocos 2x bits = 223 blocos X = 23 bits Ento: Tamanho da cache = 256 x (23 bits + 32 bytes) Tamanho da cache = 256 x (23 bits + 256 bits) Tamanho da cache = 256 x 279 bits Tamanho da cache = 71.424 bits ou 8.928 bytes 7) Considere que o processador, durante a execuo de um programa acessar os seguintes blocos, nesta ordem: 25, 6, 0, 38, 9, 28, 25, 22, 27, 6, 24, 32 e 25. Desenhe a memria cache e

calcule a quantidade de faltas no acesso a uma cache com 8 linhas, considerando as diferentes tcnicas de mapeamento: a. Mapeamento direto; Identificar em qual linha cada bloco da RAM ficar na cache utilizando o operador MOD (%): 25, 6, 0, 38, 9, 28, 25, 22, 27, 6, 24, 32 e 25. 25 mod 8 = 1 6 mod 8 = 6 0 mod 8 = 0 38 mod 8 = 6 9 mod 8 = 1 28 mod 8 = 4 25, j calculamos 22 mod 8 = 6 27 mod 8 = 3 6, j calculamos 24 mod 8 = 0 32 mod 8 = 0 25, j calculamos Como a cache est vazia, todos os blocos que nunca foram utilizados iro provocar falta: 25 (falta), 6 (falta), 0 (falta), 38 (falta e substituio), 9 (falta e substituio), 28 (falta), 25 (falta, j esteve na cache mas saiu para dar lugar ao bloco 9), 22 (falta e substituio), 27 (falta), 6 (falta, j esteve na cache mas saiu para dar lugar ao bloco 38), 24 (falta substituio), 32 (falta e substituio) e 25 (acerto!! Est na linha 1). Cache de 8 linhas 0 1 2 3 4 5 6 7 6 38 22 6 27 28 0 24 32 25 9 25

b. Mapeamento associativo (use LRU para substituir); Um bloco pode ficar em qualquer linha 25 (falta), 6 (falta), 0 (falta), 38 (falta), 9 (falta), 28 (falta), 25 (acerto, est na linha 0), 22 (falta), 27 (falta), 6 (acerto, est na linha 1), 24 (falta e substituio: usando a tcnica LRU, ou seja, menos recentemente utilizada, sara o bloco 0 para dar lugar ao bloco 24), 32 (falta e substituio: usando a tcnica LRU sara o bloco 38 para dar lugar ao bloco 32) e 25 (acerto). Cache de 8 linhas 0 1 2 3 4 5 6 7 25 6 0 24 38 32 9 28 22 27

c. Mapeamento Associativo por conjunto com 2 posies (use LRU para substituir). Identificar em qual conjunto (4 conjuntos) cada bloco da RAM ficar na cache utilizando o operador MOD (%): 25, 6, 0, 38, 9, 28, 25, 22, 27, 6, 24, 32 e 25. 25 mod 4 = 1 6 mod 4 = 2 0 mod 4 = 0 38 mod 4 = 2 9 mod 4 = 1 28 mod 4 = 0 25, j calculamos 22 mod 4 = 2 27 mod 4 = 3 6, j calculamos 24 mod 4 = 0 32 mod 4 = 0 25, j calculamos Como a cache est vazia, todos os blocos que nunca foram utilizados iro provocar falta: 25 (falta), 6 (falta), 0 (falta), 38 (falta. Ainda h linha vazia no conjunto 2), 9 (falta. Ainda h linha vazia no conjunto 1), 28 (falta. Ainda h linha vazia no conjunto 0), 25 (Acerto, conjunto 1, linha 2), 22 (falta e substituio pois conjunto 2 est cheio. Usando LRU, sara bloco 6), 27 (falta), 6 (falta, j esteve na cache mas saiu para dar lugar ao bloco 22. Entrar no lugar do bloco 38 usando o LRU), 24 (falta, substituio no lugar do bloco 0), 32 (falta, substituio no lugar do bloco 28) e 25 (acerto. Est na linha 2 do conjunto 1). Cache de 8 linhas Conjunto 0 0 1 Conjunto 1 2 3 Conjunto 2 4 5 Conjunto 3 6 7 0 24 28 32 25 9 6 22 38 6 27

Potrebbero piacerti anche