Вы находитесь на странице: 1из 32

UCB Universidade Catlica de Braslia Arquitetura de Computadores II Prof.

Adalberto

Aula 6

Arquitetura de Computadores II

Memria Cache Prof. Adalberto

Caracterstica
o componente crtico na hierarquia de memria

UCB Universidade Catlica de Braslia Arquitetura de Computadores II Prof. Adalberto

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

UCB Universidade Catlica de Braslia Arquitetura de Computadores II Prof. Adalberto

cache

Hierarquia de Memrias

processador

Memria virtual
3

Memria principal

Localidade

Localidade Espacial

UCB Universidade Catlica de Braslia Arquitetura de Computadores II Prof. Adalberto

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

Interface Cache Memria Principal


Um acesso memria principal causa a transferncia de K palavras para a cache O bloco transferido da memria principal para a cache uma unidade simples chamada linha Uma vez copiada para cache, palavras individuais dentro da linha podem ser acessadas pela CPU

UCB Universidade Catlica de Braslia Arquitetura de Computadores II Prof. Adalberto

UCB Universidade Catlica de Braslia Arquitetura de Computadores II Prof. Adalberto

Estrutura da Memria Principal e da Memria Cache

Acessos Memria Cache


Um acesso cache pode acarretar duas situaes:

UCB Universidade Catlica de Braslia Arquitetura de Computadores II Prof. Adalberto

Hit cache: o bloco acessado est na memria cache

No ser necessrio um acesso memria principal

Miss cache: o bloco acessado no est na cache.

Ser necessrio um acesso memria principal

Miss/Hit Cache
Memria Principal x=0; ... for (i=0; i<100;i++) { x = x + i; x = x + x; } Cache

UCB Universidade Catlica de Braslia Arquitetura de Computadores II Prof. Adalberto

Processador

Tempos de Acessos

Cache 10ns Memria Principal 100ns


8

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 .

UCB Universidade Catlica de Braslia Arquitetura de Computadores II Prof. Adalberto

A linha de dado e sua tag so armazenadas na cache

Funes de Mapeamento
J que M bem maior que C, como os blocos so mapeados para linhas especficas na cache? Exemplo

UCB Universidade Catlica de Braslia Arquitetura de Computadores II Prof. Adalberto

Cache de 64KB Linha de cache de 4 bytes (32bits)

A cache tem (214 = 16K) linhas de 4 bytes

Memria principal de 16MB Endereo de 24bits

(224=16M)

10

Funes de Mapeamento
Cache de 64KB
0x0000

Memria de 16MB
0x000000

UCB Universidade Catlica de Braslia Arquitetura de Computadores II Prof. Adalberto

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

UCB Universidade Catlica de Braslia Arquitetura de Computadores II Prof. Adalberto

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)

UCB Universidade Catlica de Braslia Arquitetura de Computadores II Prof. Adalberto

8 Endereo de 24bits

14

Identificador de palavra de 2bits (blocos de 4 bytes) Identificador de bloco de 22bits

Tag de 8bits (=22-14) Identificador de linha de 14bits

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

UCB Universidade Catlica de Braslia Arquitetura de Computadores II Prof. Adalberto

14

UCB Universidade Catlica de Braslia Arquitetura de Computadores II Prof. Adalberto

Organizao de Cache com Mapeamento Direto

15

Exemplo de Mapeamento Direto


Memria principal de 1MB (endereos de 20bits) enderevel por bytes individuais Cache de 1K-linhas, cada uma contm 8Bytes

UCB Universidade Catlica de Braslia Arquitetura de Computadores II Prof. Adalberto

Id de palavras = 3bits Id de linhas = 10bits Id de TAG = 7bits

Onde estar na cache o byte armazenado na memria principal no endereo 0xABCDE?


16

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

UCB Universidade Catlica de Braslia Arquitetura de Computadores II Prof. Adalberto

Examina a TAG de cada linha Processo lento para caches grandes!


17

UCB Universidade Catlica de Braslia Arquitetura de Computadores II Prof. Adalberto

Organizao de Cache com Mapeamento Associativo

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

UCB Universidade Catlica de Braslia Arquitetura de Computadores II Prof. Adalberto

Linha de cache desconhecida


19

Mapeamento Associativo por Conjunto


Meio termo entre o mapeamento direto e mapeamento totalmente associativo Divide a cache em vrios conjuntos (v), cada conjunto contm algumas linhas (k) Os blocos da memria principal podem ser armazenados em qualquer uma das k linhas no conjunto, tal que: Nmero do conjunto = j modulo v

UCB Universidade Catlica de Braslia Arquitetura de Computadores II Prof. Adalberto

Onde j o endereo de memria


20

Mapeamento Associativo por Conjunto


Se um conjunto comporta X linhas, a cache referenciada como uma cache associativa por conjunto X-way A maioria das caches hoje que usam mapeamento associativo por conjunto so 2, 4 ou 8-way

UCB Universidade Catlica de Braslia Arquitetura de Computadores II Prof. Adalberto

21

UCB Universidade Catlica de Braslia Arquitetura de Computadores II Prof. Adalberto

Organizao de Cache com Mapeamento Associativo por Conjunto k-way

22

Estrutura de Endereo em Mapeamento Associativo por Conjunto


Tag 9 bits conjunto 13 bits Word 2 bits

UCB Universidade Catlica de Braslia Arquitetura de Computadores II Prof. Adalberto

Usa o campo conjunto para determinar onde procurar na cache Compara o campo tag para ver se houve hitcache

23

UCB Universidade Catlica de Braslia Arquitetura de Computadores II Prof. Adalberto

Supor uma cache com 1024 linhas de 8 palavras (bytes) em 4-way

1023 0
24

Exemplo

UCB Universidade Catlica de Braslia Arquitetura de Computadores II Prof. Adalberto

1024 / 4 = 256 conjuntos

1023 0 255 255 255 255 0 0 0 0


25

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

UCB Universidade Catlica de Braslia Arquitetura de Computadores II Prof. Adalberto

26

Algoritmo de Substituio de Linha


Quando uma cache associativa ou associativa por conjunto est cheia, que linha deve ser substituda pela nova linha que est sendo lida da memria?

UCB Universidade Catlica de Braslia Arquitetura de Computadores II Prof. Adalberto

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?

UCB Universidade Catlica de Braslia Arquitetura de Computadores II Prof. Adalberto

Write through Write back

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

UCB Universidade Catlica de Braslia Arquitetura de Computadores II Prof. Adalberto

Write Back
A linha da cache s escrita de volta na memria principal quando precisa ser substituda Estratgias:

UCB Universidade Catlica de Braslia Arquitetura de Computadores II Prof. Adalberto

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 e Cache de Dados


PROCESSADOR

UCB Universidade Catlica de Braslia Arquitetura de Computadores II Prof. Adalberto

Cache de Instrues

Cache de Dados

Memria Principal
31

UCB Universidade Catlica de Braslia Arquitetura de Computadores II Prof. Adalberto

Ufa... Chega...

32

Вам также может понравиться