Escolar Documentos
Profissional Documentos
Cultura Documentos
Aula 8
Prof. Adalberto
Memória Cache
Arquitetura de Computadores II
Tempos de Acessos a Memória
Latência - demora no acesso à memória (ns)
Taxa de Transferência (throughput) – quantidade
Arquitetura de Computadores II – Prof. Adalberto
(acessos/segundo)
✔ Taxa Transferência = 1 / Latência
Largura de Dados – quantidade de bits (ou bytes)
de dados envolvidos em uma única transferência
(largura do barramento de dados)
Largura de Banda – quantidade de bits (ou bytes)
de dados transmitidos em um intervalo de tempo
(bits ou bytes por segundo)
Exemplo
Se uma memória tem uma latência de 10ns
por operação (10x10-9s) e uma largura de
Arquitetura de Computadores II – Prof. Adalberto
✔
Comparada ao tamanho da memória principal, o
tamanho da memória cache é bem menor
UCB – Universidade Católica de Brasília
✔
Trabalha na mesma velocidade, ou quase, do
processador
✔
Muito mais cara, quando comparada com a
memória principal
✔
A cache contém cópias de seções da memória
principal
UCB – Universidade Católica de Brasília
Arquitetura de Computadores II – Prof. Adalberto
Memória
Processador
Virtual
Cache
Principal
Memória
Memória
Processador
Hierarquia de Memórias
Localidade
● Localidade Espacial
● Se uma informação é acessada dentro de um
Arquitetura de Computadores II – Prof. Adalberto
e da Memória Cache
Estrutura da Memória Principal
Acessos à Memória Cache
Um acesso à cache pode acarretar duas
situações:
Arquitetura de Computadores II – Prof. Adalberto
cache
✔ Não será necessário um acesso à memória principal
✔ Miss cache: o bloco acessado não está na
cache.
✔ Será necessário um acesso à memória principal
Organização da Cache
Se há 2n palavras na memória principal, então
n
haverá M = 2 /K blocos na memória principal
Arquitetura de Computadores II – Prof. Adalberto
na cache
Todas as linhas na cache devem ser
marcadas (por uma tag) de alguma maneira
para identificar que bloco da memória principal
ela é.
✔ A linha de dado e sua tag são armazenadas
na cache
Funções de Mapeamento
Já que M é bem maior que C, como os
blocos são mapeados para linhas
Arquitetura de Computadores II – Prof. Adalberto
específicas na cache?
UCB – Universidade Católica de Brasília
Exemplo
✔ Cache de 64KB
✔ Linha de cache de 4 bytes (32bits)
✔ A cache tem (214 = 16K) linhas de 4 bytes
✔ Memória principal de 16MB
✔ Endereço de 24bits
✔ (224=16M)
Funções de Mapeamento
Memória de 16MB
Cache de 64KB
0x000000
0x0000
Arquitetura de Computadores II – Prof. Adalberto
UCB – Universidade Católica de Brasília
0x3FFF
8 14 2
Arquitetura de Computadores II – Prof. Adalberto
Endereço de 24bits
UCB – Universidade Católica de Brasília
s
1 1,m+1, 2m+1…2 -m+1
UCB – Universidade Católica de Brasília
(...) (...)
m-1 m-1, 2m-1,3m-1…2s-1
UCB – Universidade Católica de Brasília
Arquitetura de Computadores II – Prof. Adalberto
Mapeamento Direto
Organização de Cache com
Exemplo de Mapeamento Direto
Memória principal de 1MB (endereços de
20bits) endereçável por bytes individuais
Arquitetura de Computadores II – Prof. Adalberto
8Bytes
✔ Id de palavras = 3bits
✔ Id de linhas = 10bits
✔ Id de TAG = 7bits
Onde estará na cache o byte armazenado
na memória principal no endereço
0xABCDE?
Mapeamento Associativo
Um bloco pode ser armazenado em
qualquer linha na cache
Arquitetura de Computadores II – Prof. Adalberto
como tag+word
A TAG identifica um único bloco da memória
Deve examinar cada linha na cache para
achar o bloco certo da memória principal
✔ Examina a TAG de cada linha
✔ Processo lento para caches grandes!
UCB – Universidade Católica de Brasília
Arquitetura de Computadores II – Prof. Adalberto
Mapeamento Associativo
Organização de Cache com
Exemplo
Id de palavra = 3 bits
Id de Tag = 17 bits
Arquitetura de Computadores II – Prof. Adalberto
UCB – Universidade Católica de Brasília
e tag 0x1579D
deslocamento = 0x6
0x1578D
Mapeamento Associativo por
Conjunto
Meio termo entre o mapeamento direto e
mapeamento totalmente associativo
Arquitetura de Computadores II – Prof. Adalberto
Conjunto k-way
Organização de Cache com
Mapeamento Associativo por
Estrutura de Endereço em
Mapeamento Associativo por
Conjunto
Word
Tag 9 bits conjunto 13 bits 2 bits
Arquitetura de Computadores II – Prof. Adalberto
UCB – Universidade Católica de Brasília
1023
0
palavras (bytes) em 4-way
Exemplo
Supor uma cache com 1024 linhas de 8
UCB – Universidade Católica de Brasília
Arquitetura de Computadores II – Prof. Adalberto
1023
0
255
0
255
0
1024 / 4 = 256 conjuntos
255
0
Exemplo (cont)
255
0
Exemplo
Id de palavra = 3 bits
Id de conjunto = 8 bits
Arquitetura de Computadores II – Prof. Adalberto
Id de Tag = 9 bits
UCB – Universidade Católica de Brasília
0x00
TAG = 0x157
0x9B
conjunto = 0x9B 0xFF
palavra = 0x6
Algoritmo de Substituição de
Linha
Quando uma cache associativa ou
associativa por conjunto está cheia, que
Arquitetura de Computadores II – Prof. Adalberto
realizada quando?
UCB – Universidade Católica de Brasília
✔ Write through
✔ Write back
Write Through
Sempre que uma palavra é atualizada na
cache, ela é também atualizada na memória
Arquitetura de Computadores II – Prof. Adalberto
principal
UCB – Universidade Católica de Brasília
substituída
UCB – Universidade Católica de Brasília
Estratégias:
✔ Mais simples: a linha é copiada de volta na
memória principal independente de ter sido
alterada ou não
✔ Mais complexa: a linha só é copiada de volta na
memória principal se foi alterada, para isso,
cada linha da cache deve ter um bit para idicar a
alteração ou não