Академический Документы
Профессиональный Документы
Культура Документы
Adalberto
Aula 6
Arquitetura de Computadores II
Caracterstica
o componente crtico na hierarquia de memria
Comparada ao tamanho da memria principal, o tamanho da memria cache bem menor Trabalha na mesma velocidade, ou quase, do processador Muito mais cara, quando comparada com a memria principal A cache contm cpias de sees da memria principal
cache
Hierarquia de Memrias
processador
Memria virtual
3
Memria principal
Localidade
Localidade Espacial
Se uma informao acessada dentro de um programa, provvel que informaes adjacentes sero acessadas em um futuro prximo Se uma informao acessada dentro de um programa, provvel que ela seja acessada novamente em um futuro
4
Localidade Temporal
Miss/Hit Cache
Memria Principal x=0; ... for (i=0; i<100;i++) { x = x + i; x = x + x; } Cache
Processador
Tempos de Acessos
Organizao da Cache
Se h 2n palavras na memria principal, ento n haver M = 2 /K blocos na memria principal M ser muito maior que o nmero de linhas C, na cache Todas as linhas na cache devem ser marcadas (por uma tag) de alguma maneira para identificar que bloco da memria principal ela .
Funes de Mapeamento
J que M bem maior que C, como os blocos so mapeados para linhas especficas na cache? Exemplo
(224=16M)
10
Funes de Mapeamento
Cache de 64KB
0x0000
Memria de 16MB
0x000000
0x3FFF
Cache de 64KB tem: 16.384 linhas de 4 bytes Memria Principal de 16MB tem: 4.194.304 blocos de 4 bytes A MP 256 vezes maior que a Cache
0xFFFFFF
11
Mapeamento Direto
Cada bloco da memria principal associado a uma linha especfica na cache O endereo dividido em duas partes
Os w bits menos significativos identificam uma palavra Os s bits mais significativos especificam um dos 2s blocos da memria principal
A cache interpreta esses s-bits como uma tag de (s r)bits e um campo linha de r bits
12
Mapeamento Direto
Tag (s-r) Linha (r) palavra (w)
8 Endereo de 24bits
14
Nunca, dois blocos distintos na mesma linha tm a mesma tag A checagem do contedo da cache feita achando a linha na cache e checando a TAG
13
Mapeamento Direto
Linha de Cache 0 1 (...) m-1 Blocos da memria principal 0, m, 2m, 3m2s-m 1,m+1, 2m+12 -m+1 (...) m-1, 2m-1,3m-12s-1
s
14
15
Mapeamento Associativo
Um bloco pode ser armazenado em qualquer linha na cache O Endereo de memria interpretado como tag+word A TAG identifica um nico bloco da memria Deve examinar cada linha na cache para achar o bloco certo da memria principal
18
Exemplo
Id de palavra = 3 bits Id de Tag = 17 bits Onde estar na cache o byte armazenado no endereo de memria 0xABCDE? 0xABCDE = 10101011110011011 110 tag 0x1579D, deslocamento = 0x6,
0x1578D
21
22
Usa o campo conjunto para determinar onde procurar na cache Compara o campo tag para ver se houve hitcache
23
1023 0
24
Exemplo
Exemplo (cont)
Exemplo
Id de palavra = 3 bits Id de conjunto = 8 bits Id de Tag = 9 bits Onde estar armazenado o endereo de memria 0xABCDE na cache? 0xABCDE = 101010111 10011011 110 TAG = 0x157 conjunto = 0x9B palavra = 0x6
0x00 0x9B 0xFF
26
Nenhum problema para o mapeamento direto j que cada bloco tem uma linha pr-determinada para ser substituda A menos recentemente usada FIFO A menos freqentemente usada Randmica
27
Polticas de Escrita
Quando uma linha da cache escrita, a atualizao da memria principal deve ser realizada quando?
28
Write Through
Sempre que uma palavra atualizada na cache, ela tambm atualizada na memria principal Ambas as cpias sempre so iguais Gera uma quantidade de escritas na memria principal muito grande Em geral, apenas 5% a 34% dos acessos memria so de escritas
29
Write Back
A linha da cache s escrita de volta na memria principal quando precisa ser substituda Estratgias:
Mais simples: a linha copiada de volta na memria principal independente de ter sido alterada ou no Mais complexa: a linha s copiada de volta na memria principal se foi alterada, para isso, cada linha da cache deve ter um bit para idicar a alterao ou no
30
Cache de Instrues
Cache de Dados
Memria Principal
31
Ufa... Chega...
32