A apresentação está carregando. Por favor, espere

A apresentação está carregando. Por favor, espere

Arquitectura de Computadores

Apresentações semelhantes


Apresentação em tema: "Arquitectura de Computadores"— Transcrição da apresentação:

1 Arquitectura de Computadores
Hierarquia de memória Programadores e utilizadores desejam quantidades ilimitadas de memória rápida. A hierarquia de memória cria esta ilusão. cache memória central disco magnético tapes e discos ópticos preço velocidade tamanho 02/05/2019 Arquitectura de Computadores

2 Princípio da localidade
Hierarquia de memória Princípio da localidade Localidade temporal – se um item é referenciado, então será provavelmente referenciado de novo num futuro próximo. Localidade espacial – se um item é referenciado, então itens com endereços próximos serão provavelmente referenciados num futuro próximo. 02/05/2019 Arquitectura de Computadores

3 Arquitectura de Computadores
Hierarquia de memória Transferência de informação entre níveis a pedido e por blocos hit – informação pedida encontrada no nível mais próximo miss – informação pedida tem que ser lida de níveis inferiores hit rate – #hit / (#miss + #hit) miss rate -- #miss / (#miss + #hit) = 1 – hit rate miss penalty – tempo necessário para ler um bloco de um nível inferior 02/05/2019 Arquitectura de Computadores

4 Arquitectura de Computadores
Hierarquia de memória 00000 00001 cache 00010 00011 00100 00101 000 00110 001 00111 010 01000 011 01001 100 01010 101 01011 110 01100 111 01101 01110 01111 10000 10001 10010 10011 Como saber se um bloco está na cache ? Quando um bloco é carregado em que linha da cache deve ser colocado? 10100 10101 10110 10111 11000 11001 11010 11011 11100 11101 11110 11111 02/05/2019 Arquitectura de Computadores

5 Arquitectura de Computadores
Hierarquia de memória 00000 00001 cache 00010 00011 00100 00101 000 00110 001 00111 010 01000 011 01001 100 01010 101 01011 110 01100 111 01101 01110 01111 10000 10001 10010 10011 10100 10101 Mapeamento directo Linha = resto (addr / #linhas) 10110 10111 11000 11001 11010 11011 11100 11101 11110 11111 02/05/2019 Arquitectura de Computadores

6 Arquitectura de Computadores
Hierarquia de memória 32 bits valid tag data 00111 01000 01001 01010 01011 01100 01101 01110 01111 10000 10001 10010 10011 10100 1 bit 2 bits 32 bits 000 1 01 001 010 1 10 011 100 101 110 111 É necessário espaço de memória extra para as tags e valid bits. Qual a capacidade necessária para uma cache de 32 KBytes, com blocos de 1 byte, num sistema com endereços de 32 bits, usando mapeamento directo? R: tag = bits, logo 32x1024x(17+1) + 32x1024x8 = 832 Kbits = 104 KBytes 02/05/2019 Arquitectura de Computadores

7 Arquitectura de Computadores
Hierarquia de memória Processamento de leituras: se o bloco requerido estiver na cache, é fornecido ao processador. Se não estiver na cache, deve ser lido do nível inferior. Eventualmente, o processador é colocado à espera do bloco requerido. Processamento de escritas: se o bloco a escrever não estiver na cache deve ser lido da memória ? Como garantir a coerência entre a cache e a memória central? write-through write-back 02/05/2019 Arquitectura de Computadores

8 Arquitectura de Computadores
Hierarquia de memória Para tirar partido da localidade espacial cada linha da cache corresponde a várias palavras consecutivas de memória. 02/05/2019 Arquitectura de Computadores

9 Várias palavras por linha
Hierarquia de memória Várias palavras por linha Vantagens: Aumenta a localidade espacial, diminuindo a miss-rate Diminui a percentagem de cache dedicada a bits de controlo Desvantagens: Obriga a leituras da memória no caso de write-miss Pode aumentar a miss penalty NOTA: um número exagerado de palavras por linha pode aumentar a miss-rate 02/05/2019 Arquitectura de Computadores

10 Arquitectura de Computadores
Hierarquia de memória Programa Bloco (palavras) Instruction miss rate Data total Gcc 1 6,1 % 2,1 % 5,4 % 4 2,0 % 1,7 % 1,9 % 02/05/2019 Arquitectura de Computadores

11 Arquitectura de Computadores
Hierarquia de memória O mapeamento directo permite determinar rapidamente qual a linha da cache onde um bloco pode estar colocado, mas pode provocar uma miss-rate elevada devido a colisões. O mapeamento completamente associativo (fully associative) permite que um bloco seja colocado em qualquer linha da cache, reduzindo as colisões, mas aumentando os bits da tag e o tempo necessário para determinar se um bloco está na cache. O mapeamento n-way set associative representa um compromisso entre as duas alternativas anteriores. 02/05/2019 Arquitectura de Computadores

12 Arquitectura de Computadores
Hierarquia de memória Mapeamento directo 2-way set associative Fully associative Endereço do bloco = 12 Mapeamento directo – linha = 12 % 8 = 4 2-way set associative – set = 12 % 4 = 0 Fully associative – qualquer linha 02/05/2019 Arquitectura de Computadores

13 Hierarquia de memória Qual o bloco a substituir?
Estratégia aleatória – substituir um bloco qualquer aleatoriamente; Least recently used (LRU) – substituir o bloco que não é acedido há mais tempo. A implementação de LRU tem custos elevados, e a sua vantagem relativamente a estratégias mais simples depende da miss penalty. Se esta não é muito elevada então a estratégia aleatória ou a utilização de uma LRU aproximada pode ser igualmente eficaz. 02/05/2019 Arquitectura de Computadores


Carregar ppt "Arquitectura de Computadores"

Apresentações semelhantes


Anúncios Google