1 / 24

Agenda

Agenda. Memória CACHE. Memória Cache. Motivo Melhorar a relação entre o tempo de acesso a dados e instruções e a velocidade dos processadores. Problema Custo elevado Utilização Praticamente todos os computadores. Localidade.

chenoa
Download Presentation

Agenda

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Agenda • Memória CACHE

  2. Memória Cache • Motivo • Melhorar a relação entre o tempo de acesso a dados e instruções e a velocidade dos processadores. • Problema • Custo elevado • Utilização • Praticamente todos os computadores

  3. Localidade • Constatação: programas são escritos e executados pela CPU em pequenos grupos de instruções • Então não é necessário ter uma memória rápida e cara muito grande • Podemos estabelecer um compromisso entre custo e desempenho

  4. Localidade • Temporal: quando a CPU acessa uma palavra de memória existe uma boa probabilidade que em breve acesse a mesma palavra. • Espacial: quando a CPU acessa uma palavra de memória existe uma boa probabilidade que o programa acesse uma palavra subsequente.

  5. Programa

  6. Transferência de Palavras Transferência de Blocos CACHE Organização CPU Memória Principal

  7. Funcionamento • A CPU sempre acessa a memória Cache (dados ou instruções) • Acerto: a CPU encontra a informação na memória Cache • Falta: a informação não está na Cache, a execução é suspensa e a informação é transferida da MP para a memória Cache.

  8. Tempo de Acesso TA= p . T1 + (1-p) . (T2 +T1) T1+T2 T2 T1 100 0 % acerto (p)

  9. Memória Cache • Tamanho • Mapeamento • Substituição de dados na Cache • Política de escrita pela Cache

  10. Tamanho • Quanto maior melhor • Problema custo elevado • Relação acertos / faltas • Relação Tempo Acesso Cache pelo Tempo de Acesso da MP • Natureza dos Programas

  11. Bloco 0 B= N / K = 2E / K Bloco 1 Q << B Bloco B-1 Tag Tamanho do Bloco (K palavras) Mapeamento

  12. Mapeamento Direto • MP= 4G palavras E= 32 bits • Cache= 64 KB Q= 1K • 1 Quadro possui 64 Bytes ou palavras • B= 4G / 64 Bytes = • Então: • cada quadro do cache deverá acomodar 64K Blocos. 64 M Blocos

  13. Exemplo Endereço da palavra Número do quadro Número do bloco no Quadro - TAG

  14. Mapeamento Direto • Para definir quais blocos da MP serão alocados a um quadro específico: q= N mod Q. q= número do quadro da Cache N= endereço da MP Q= número de quadros da Cache • q= 0: blocos 0, 1024,2048,... • q=1023: blocos 1023,2047,.., 64M-1

  15. Mapeamento Associativo • Os blocos não têm um quadro associado. Se o bloco desejado não está em nenhum quadro da Cache, ele deverá ser transferido para a Cache, substituindo um bloco armazenado nela.

  16. Mapeamento Associativo • Cada vez que a CPU realizar um acesso, o controlador de cache deve examinar e comparar os 26 bits do endereço do bloco

  17. Associativo por Conjuntos • Tenta resolver o problema do conflito de blocos em um mesmo quadro (mapeamento direto) e o problema da busca exaustiva e comparação das tags de toda a cache (mapeamento associativo)

  18. Associativo por Conjuntos • Organiza os quadros da Cache em grupos - conjuntos. Dentro dos conjuntos, os quadros são associativos. • A cache é dividida em C conjuntos de D quadros, assim, Q = C x D.

  19. Substituição de dados • Mapeamento Direto: não há o que se fazer - é pré-definida. • Mapeamento Associativo ou Associativo por Conjuntos • O que não é usado há mais tempo • Fila ( first in first out) • O que tem menos referência • Escolha aleatória

  20. Escrita na Cache • Em sistemas com memória Cache, toda vez que a CPU realiza uma operação de escrita, esta ocorre na cache. Portanto, é necessário que em alguns momentos, a MP seja atualizada. • Antes que um bloco seja substituído na cache, é necessário saber se ele foi alterado ou não.

  21. Escrita na Cache • Este problema é complicado • a MP pode ser acessada pela cache e por dispositivos de E/S (DMA), neste caso a palavra da MP pode ter sido alterada e da cache não. • Computadores que possuam várias CPU´s cada uma com sua cache.

  22. Escrita na Cache • Write Through • cada escrita na cache acarreta escrita igual na MP. • Caso existam outras CPU´s com cache o procedimento se repete • Pode causar uma grande quantidade de escritas desnecessárias na MP, reduzindo o desempenho do sistema

  23. Escrita na Cache • Write Back • atualiza a MP quando o bloco foi substituído e houver ocorrido alguma alteração. Existe um bit de flag para identificar se houve alteração de conteúdo. • A MP fica potencialmente desatualizada para utilização de outros dispositivos.

  24. Escrita na Cache • Write Once • apropriada para arquiteturas multi-CPUs. Por ela, o controlador da cache atualiza a MP sempre que o bloco correspondente na cache foi atualizada pela primeira vez. Essa escrita serve de alerta para os demais componentes. Esse alerta impede o uso da palavra

More Related