memória cache - · cada bloco da memória principal

Download Memória Cache -  · cada bloco da memória principal

Post on 15-Oct-2018

213 views

Category:

Documents

0 download

Embed Size (px)

TRANSCRIPT

  • Prof. Leonardo Barreto Campos 1

    Memria Cache

  • Prof. Leonardo Barreto Campos 2/34

    Sumrio

    Introduo;

    Projeto de Memrias Cache; Tamanho; Funo de Mapeamento; Poltica de Escrita; Tamanho da Linha; Nmero de Memrias Cache;

    Bibliografia.

  • Prof. Leonardo Barreto Campos 3/34

    Introduo

    A memria cache surgiu quando percebeu-se que as memrias no eram mais capazes de acompanhar o processador em velocidade;

    Dessa forma, a memria cache consiste numa pequena quantidade de memria SRAM, includa no chip do processador.

    O uso de memria cache visa obter uma maior velocidade de acesso memria, ao mesmo tempo, disponibilizar no sistema uma memria de grande capacidade;

  • Prof. Leonardo Barreto Campos 4/34

    Introduo Eis uma figura que simplifica o conceito de memria

    cache:

    A memria cache contm uma cpia de partes da memria principal;

    Quando o processador deseja ler uma palavras da memria, realizado um teste para determinar onde este dado est: se a palavra estiver na memria cache, ela fornecido ao

    processador diretamente; caso contrrio, um bloco de dados da memria principal,

    nmero fixo de palavras, lido para a memria cache e em seguida a palavra requerida entregue ao processador;

  • Prof. Leonardo Barreto Campos 5/34

    Introduo

    A idia central que um bloco de dados trazido para aa memria cacheter grandes chances de receber futuras referncias;

  • Prof. Leonardo Barreto Campos 6/34

    Introduo

    Vejamos um fluxograma contendo a operao de leitura de um dado na memria cache:

  • Prof. Leonardo Barreto Campos 7/34

    Introduo

    Consideraes: O processador gera um endereo, RA, da palavra a ser lida;

    Se essa palavra estiver contida na memria cache, ela ser entregue ao processador;

    Caso contrrio, o bloco que contm essa palavra ser carregado na memria cache e a palavra entregue ao processador;

    Essas duas ltimas operaes ocorrem paralelamente, refletindo a organizao tpica de memrias cache modernas;

  • Prof. Leonardo Barreto Campos 8/34

    Introduo

    Em memrias cachemodernas as linhas de dados e de endereosso tambm conectadas a reas de armazenamento temporrio de dados e de endereos que se conectam ao barramento do sistema, por meio do qual feito o acesso memria principal.

  • Prof. Leonardo Barreto Campos 9/34

    Projeto de Memrias Cache

    Embora existam diversas implementaes de memrias cache, poucos elementos bsicos de projeto servem para classificar e diferenciar as diversas arquiteturas, so eles Tamanho;

    Funo de Mapeamento;

    Algoritmo de Substituio;

    Poltica de Escrita;

    Tamanho da Linha;

    Nmero de Memrias Cache;

  • Prof. Leonardo Barreto Campos 10/34

    Tamanho

    O tamanho de uma memria cache deve ser: Suficientemente pequeno para que o custo total mdio por bit

    seja prximo do custo por bit da memria principal; Suficientemente grande para que o tempo mdio de acesso

    memria seja prximo ao tempo de acesso da memria cache.

    Quanto maior a memria cache, maior o nmero de portas envolvidas no seu endereamento [Teoria Keciana e Manoelstica]

    Entretanto o tamanho da memria cache tem crescido nos ltimos anos, veja a tabela do prximo slide:

  • Prof. Leonardo Barreto Campos 11/34

    Tamanho

  • Prof. Leonardo Barreto Campos 12/34

    Tamanho

    O tamanho de uma memria cache tambm limitado pelo tamanho da pastilha e da placa de circuito;

    Em suma, como o desempenho de uma memria cache muito sensvel natureza da carga de trabalho imposta, impossvel determinar um tamanho timo.

  • Prof. Leonardo Barreto Campos 13/34

    Funo de Mapeamento

    Como vimos anteriormente, o nmero de linhas de memria cache menor do que o de blocos da memria principal.

    Dessa forma, necessrio um algoritmo para mapearos blocos da memria principal em linhas da memria cache;

    Tambm preciso um mecanismo para determinar o bloco da memria principal que ocupa uma dada linha da memria cache;

  • Prof. Leonardo Barreto Campos 14/34

    Funo de Mapeamento

    A escolha da funo que efetua esse mapeamento determina como a memria cache organizada.

    Trs tcnicas diferentes podem ser usadas:

    Mapeamento direto;

    Mapeamento associativo;

    Mapeamento associativo por conjuntos;

  • Prof. Leonardo Barreto Campos 15/34

    Funo de Mapeamento

    Para cada funo de mapeamento ser mostrada a estrutura geral e, em seguida, um exemplo especfico;

    O exemplo inclui os seguintes elementos: A memria cache pode conter 64 Kbytes.

    Os dados so transferidos entre a memria principal e a memria cache em blocos de 4 bytes. Dessa forma, a memria cache organizada com 16K = 214 linhas de 4 bytes cada uma.

    A memria principal com 16 Mbytes, sendo cada byte enderevel diretamente por um endereo de 24 bits.

  • Prof. Leonardo Barreto Campos 16/34

    Mapeamento Direto

    No mapeamento direto, cada bloco da memria principal mapeado em uma nica linha de cache;

    Nos acessos memria cache, um endereo da memria principal pode ser visto como constitudo de trs campos: Os w bits menos significativos identificam uma nica palavra ou byte

    dentro de um bloco da memria principal;

    Os s bits restantes especificam um dos 2s blocos da memria principal. Eles so interpretados na memria cache como compostos de um rtulo de s r bits (mais significativos) e de um nmero de linha r bits que identifica uma das m = 2r linhas da memria cache;

  • Prof. Leonardo Barreto Campos 17/34

    Mapeamento Direto

  • Prof. Leonardo Barreto Campos 18/34

    Mapeamento Direto

  • Prof. Leonardo Barreto Campos 19/34

    Mapeamento Direto

    A tcnica de mapeamento direto simples e tem custo de implementao baixo;

    Sua principal desvantagem que cada bloco mapeado em uma posio fixa na memria cache;

    Dessa forma, se um programa fizer repetidas referncias a palavras de dois blocos distintos, mapeados em uma mesma linha, esses blocos ser trocados continuamente na memria cache e a taxa de acertos memria cache ser baixa;

  • Prof. Leonardo Barreto Campos 20/34

    Mapeamento Associativo

    Evita as desvantagens do mapeamento direto, permitindo que cada bloco da memria principal seja carregado em qualquer linhade memria cache;

    Nesse caso, a lgica de controle da memria cache interpreta um endereo de memria como constitudo simplesmente de umrtulo e um campo de palavra;

    O rtulo identifica um bloco da memria principal de modo unvoco. Para determinar se um bloco est na memria cache, a lgica de

    controle da cache deve comparar simultaneamente o campo de rtulo do endereo do bloco acessado com os rtulos de todas as linhas;

  • Prof. Leonardo Barreto Campos 21/34

    Mapeamento Associativo

    Um endereo de memria principal composto de um rtulo de 22 bits e de um nmero de byte de 2 bits;

    Os 22 bits do rtulo so armazenados junto com os 32 bits de dados do bloco em cada linha de memria cache;

    Dessa forma, o endereo hexadecimal de 24 bits 16339C tem rtulo igual a 058CE7. Isso pode ser visto mais facilmente utilizando a notao binria: Endereo de memria 0001 0110 0011 0011 1001 1100(bin)

    1 6 3 3 9 C (hex) Rtulo 00 0101 1000 1100 1110 0111 (bin)

    0 5 8 C E 7 (hex)

  • Prof. Leonardo Barreto Campos 22/34

    Mapeamento Associativo

  • Prof. Leonardo Barreto Campos 23/34

    Mapeamento Associativo

  • Prof. Leonardo Barreto Campos 24/34

    Mapeamento Associativo

    O mapeamento associativo oferece maior flexibilidadepara a escolha do bloco a ser substitudo quando um novo bloco trazido para a memria cache;

    A principal desvantagem do mapeamento associativo a complexidade do conjunto de circuitos para a comparao dos rtulos de todas as linhas da memria cache;

  • Prof. Leonardo Barreto Campos 25/34

    Mapeamento Associativo por Conjuntos

    Nesse mapeamento, combinado vantagens do mapeamento direto e do mapeamento associativo e diminui suas desvantagens;

    A memria cache dividida em v conjuntos, cada qual com k linhas.

    Em um mapeamento totalmente associativo, o rtulo de um endereo de memria muito grande e comparado com o rtulo de cada linha de memria cache;

  • Prof. Leonardo Barreto Campos 26/34

    Mapeamento Associativo por Conjuntos

    Em um mapeamento associativo por conjuntos de k linhas, o rtulo de um endereo de memria muito menor e comparado apenas com k rtulos de um mesmo conjunto;

    A figura a seguir mostra nosso sistema utilizando um mapeamento associativo por conjuntos com duas linhas em cada conjunto, denominado mapeamento associativo por conjuntos de duas linhas;

  • Prof. Leonardo Barreto Campos 27/34

    Mapeamento Associativo por Conjuntos

  • Prof. Leonardo Barreto Campos 28/34

    Mapeamento Associativopor Conjunto

  • Prof. Leonardo Barreto Campos 29/34

    Mapeamento Associativo por Conjuntos

    A organizao de mapeamento associativo por conjuntos mais comum a que usa duas linhas por conjunto (v = m/2, k = 2);

    Sua taxa de acertos significativamente maior do que no caso do mapeamento direto;

    Um maior nmero de linhas por conjunto no apresenta melhoras significativas de desempenho;

  • Prof. Leonardo Barreto Campos 30/34

    Algoritmo de Substituio

    Quando um novo bloco trazido para a memria cache, um dos blocos existentes deve ser substitudo;

    No mapeamento direto, cada bloco mapeado em uma nica linha, o que determina o bloco a ser substitudo,

Recommended

View more >