Caches

MO601 - Arquitetura de Computadores II

http://www.ic.unicamp.br/~rodolfo/mo601

Rodolfo Azevedo - rodolfo@ic.unicamp.br

MO601 - Arquitetura de Computadores II - Rodolfo Azevedo - CC BY-SA 4.0

Por que precisamos de cache?

  • Acelera, de forma transparente, o acesso à memória
  • Múltiplos níveis: L1, L2, L3
  • Nível L1 dividido em dois
    • L1-I: instruções
    • L1-D: dados
  • Demais níveis são unificados
MO601 - Arquitetura de Computadores II - Rodolfo Azevedo - CC BY-SA 4.0

Qual o tamanho da cache em um sistema ideal?

MO601 - Arquitetura de Computadores II - Rodolfo Azevedo - CC BY-SA 4.0

Organização básica

MO601 - Arquitetura de Computadores II - Rodolfo Azevedo - CC BY-SA 4.0

Multi-core - surge a necessidade de coerência

MO601 - Arquitetura de Computadores II - Rodolfo Azevedo - CC BY-SA 4.0

Antecipando a coerência

MO601 - Arquitetura de Computadores II - Rodolfo Azevedo - CC BY-SA 4.0

Particionando a L2

MO601 - Arquitetura de Computadores II - Rodolfo Azevedo - CC BY-SA 4.0

Questões importantes

  • Cache inclusiva vs exclusiva
  • Leituras parciais
    • Primeiro o dado que o processador precisa
    • Afeta a ordem de leitura da memória
  • Write buffer
    • Atrasa a escrita na memória
    • Acelera a escrita na cache
  • Write-through vs write-back
MO601 - Arquitetura de Computadores II - Rodolfo Azevedo - CC BY-SA 4.0

Memória Virtual

  • Endereço Físico
  • Endereço Virtual
  • Página
  • TLB
  • Alias virtual
  • Ordem de tradução
    • Antes da cache
    • Após a cache
MO601 - Arquitetura de Computadores II - Rodolfo Azevedo - CC BY-SA 4.0

Mapeamento de endereço virtual para físico

MO601 - Arquitetura de Computadores II - Rodolfo Azevedo - CC BY-SA 4.0

Estrutura interna

MO601 - Arquitetura de Computadores II - Rodolfo Azevedo - CC BY-SA 4.0

Múltiplas vias (ways)

MO601 - Arquitetura de Computadores II - Rodolfo Azevedo - CC BY-SA 4.0

Organização real

MO601 - Arquitetura de Computadores II - Rodolfo Azevedo - CC BY-SA 4.0

Pipeline para acesso paralelo

MO601 - Arquitetura de Computadores II - Rodolfo Azevedo - CC BY-SA 4.0

Pipeline para acesso serial

MO601 - Arquitetura de Computadores II - Rodolfo Azevedo - CC BY-SA 4.0

Lookup-free caches

  • Suporta mais de um acesso em andamento
    • Miss Status Holding Registers (MSHR)
  • Enquanto está resolvendo um miss, executa outro acesso (Hit ou Miss)
    • Miss primário: primeiro miss em um bloco de cache
    • Miss secundário: miss subsequente em um bloco de cache
    • Stall por miss estrutural: miss extra por falta de recurso de hardware
MO601 - Arquitetura de Computadores II - Rodolfo Azevedo - CC BY-SA 4.0

Outros conceitos

  • Multiport
  • Multibank
MO601 - Arquitetura de Computadores II - Rodolfo Azevedo - CC BY-SA 4.0

Considerações sobre cache de instruções

  • Multiport vs single port
  • Lookup free vs blocking
  • Associatividade
MO601 - Arquitetura de Computadores II - Rodolfo Azevedo - CC BY-SA 4.0