Escolar Documentos
Profissional Documentos
Cultura Documentos
Memria Cache
Objetivos da aula
1. Tipos de Memria Cache
2. Organizao
3. Funcionamento
5-1
Memria Cache
Introduo
5-2
Memria Cache
5-3
Memria Cache
Processador
Operao
Soma: 2 ns
Transferncia: 100 ns
5-4
Memria Cache
Modalidades
1. Localidade espacial os programas tendem a repetir o
acesso a uma mesma palavra da memria; h tambm
uma boa probabilidade que o programa acesse a palavra
seguinte na memria.
2. Localidade temporal os programas tendem a usar
frequentemente o mesmo endereo em curto espao de
tempo.
5-5
Memria Cache
Soma = 0;
for (i = 1; i < 100; i++)
{
loop
Soma = Soma + 2;
printf(Soma = %d\n, Soma);
}
5-6
Memria Cache
Organizao e Funcionamento
Armazena informaes trocadas entre a MP e o processador.
fabricada com tecnologia semelhante do processador:
possui ciclos de acesso compatveis com o processador.
Chamada tambm de RAM cache ou cache para MP.
O custo de fabricao alto.
dispositivo voltil.
5-7
Memria Cache
Organizao e Funcionamento
Processador
Transferncia palavra por palavra
Cache
Transferncia bloco por bloco
MP
5-8
Memria Cache
Organizao e Funcionamento
Acerto (hit) o dado solicitado est na memria cache.
Falta (miss) o dado solicitado no se encontra na memria
cache, preciso traz-lo da MP.
Eficincia da cache =
5-9
Acertos
Total de acessos
Memria Cache
Linha 0
Linha 1
Linha 2
Byte 3
Byte 2
Byte 1
Byte 0
Byte 3
Byte 2
Byte 1
Byte 0
Byte 3
Byte 2
Byte 1
Byte 0
Linha L - 1
Byte 3
Exemplo: linha
com 4 bytes
tag
Byte 2
Byte 0
dados
tag = etiqueta
Endereo do bloco
2013.1 Organizao de Computadores
Byte 1
5 - 10
Memria Cache
Bloco 0
Bloco 1
Byte 0 (clula 0)
Byte 1 (clula 1)
Byte 2 (clula 2)
Byte 3 (clula 3)
Byte 4 (clula 4)
Byte 5 (clula 5)
Byte 6 (clula 6)
Byte 7 (clula 7)
Bloco B -1
Byte N-1 (clula N-1)
2013.1 Organizao de Computadores
5 - 11
Memria Cache
5 - 12
Memria Cache
Tipos de Mapeamento
5 - 13
Memria Cache
Mapeamento Direto
Cache
5 - 14
Memria Cache
Mapeamento Direto
Resumo
Capacidade da MP = 64B ou 26 Endereo de 6 bits.
Total de blocos = 64B / 4B = 16 ou 24.
Capacidade da cache = 16B e cada linha = 4 bytes.
Total de linhas = 16 / 4 = 4 linhas ou 22.
5 - 15
Memria Cache
Mapeamento Direto
Qual bloco da MP?
Qual linha da cache?
Qual byte na linha?
Tag
Linha
Byte
x bits
y bits
k bits
5 - 16
Memria Cache
Mapeamento Direto
Exemplo: Considere um sistema de computao com uma memria
cache de 32KB de capacidade, constituda de linhas com 8 bytes de
largura. A MP possui uma capacidade de 16MB. Qual o nmero de bits
necessrios para a cache?
Total de bits da cache = total de bits de dados + total de bits dos tags.
Total de bits de dados = 32 x 210 x 8 = 262.144 bits.
Quantidade de linhas = (32 x 1024 bytes) / (8 bytes) = 212 linhas.
Quantidade de blocos = (16 x 220 bytes) / (8 bytes) = 221 blocos.
Blocos por linha = 221 / 212 = 29.
Tamanho da tag = 212 x 9 = 36.864 bits.
Total de bits da cache = 262.144 + 36.864 = 299.008 bits.
2013.1 Organizao de Computadores
5 - 17
Memria Cache
Mapeamento Direto
Exemplo: Considere uma MP com 64MB de capacidade associada a
uma memria cache que possui 2K linhas, cada uma com largura de
16 bytes. Determine o formato do endereo para ser interpretado pelo
sistema de controle da cache.
Quantidade de linhas = 2 x 1024 = 211 11 bits para Linha.
Quantidade de bytes por linha = 16 = 24 4 bits para Byte.
Quantidade de blocos / linha = (64MB) / (2K x 16 Bytes) = 211 11
bits por Tag.
Tag
Linha
Byte
11 bits
11 bits
4 bits
5 - 18
Memria Cache
Mapeamento Direto
Exemplo: Considere uma MP constituda de blocos de largura de 32
bytes, associada a uma cache com 128KB. Em um dado instante o
processador realiza um acesso, colocando o seguinte endereo:
3FC92B6. Determine qual dever ser o valor binrio da linha que ser
localizada pelo sistema de controle da cache.
32 bytes /bloco = 25 bytes /bloco 5 bits por Byte.
Quantidade de linhas na cache = 128KB / 32B = 212 12 bits por
linha.
3FC92B6 possui 28 bits Tag = 28 5 12 = 11 bits.
00111111110 010010010101 10110
11 bits
2013.1 Organizao de Computadores
12 bits
5 - 19
5 bits
Profa. Morganna Diniz - UNIRIO
Memria Cache
Mapeamento Associativo
Cache
Linha 0 Byte 3 Byte 2 Byte 1 Byte 0
Linha 1 Byte 3 Byte 2 Byte 1 Byte 0
Linha 2 Byte 3 Byte 2 Byte 1 Byte 0
Linha 3 Byte 3 Byte 2 Byte 1 Byte 0
5 - 20
Memria Cache
Mapeamento Associativo
OBSERVAO
No mtodo de mapeamento direto cada bloco est
permanentemente associado a uma linha da cache,
enquanto no mtodo associativo preciso decidir
qual bloco ser retirado para dar vez ao bloco que
est sendo solicitado.
5 - 21
Memria Cache
Mapeamento Associativo
Bloco (tag)
Byte
Qual o byte no bloco?
Qual o bloco da MP?
5 - 22
Memria Cache
Mapeamento Associativo
Exemplo: Considere um sistema de computao com uma memria
cache de 32KB de capacidade, constituda de linhas com 8 bytes de
largura. A MP possui uma capacidade de 16MB. Qual o nmero de
bits necessrios para a cache?
Total de dados da cache = 32 x 1.024 x 8 bits = 262.144 bits
Quantidade de linhas na cache = 32KB / 8B = 4K = 212 linhas.
Quantidade de blocos na MP = 16MB / 8B = 2M = 221 blocos.
Largura do campo de bloco no endereamento = 21 bits.
Total de bits do campo bloco = 212 x 21 = 86.016 bits.
Total de bits da cache = 262.144 + 86.016 = 340 Kbits.
2013.1 Organizao de Computadores
5 - 23
Memria Cache
Mapeamento Associativo
Exemplo: Considere uma MP com 64MB de capacidade associada a
uma memria cache que possui 2K linhas, cada uma com largura de
16 bytes. Determine o formato do endereo para ser interpretado pelo
sistema de controle da cache.
16 bytes / linha = 24 bytes / linha 4 bits para o campo byte.
Quantidade de blocos na MP = 64MB / 16B = 4M = 222 blocos.
Largura do campo bloco = 22 bits.
Bloco (tag)
Byte
22 bits
2013.1 Organizao de Computadores
4 bits
5 - 24
Memria Cache
Mapeamento Associativo
Exemplo: Considere uma MP constituda de blocos de largura de 32
bytes, associada a uma cache com 128KB. Em um dado instante o
processador realiza um acesso, colocando o seguinte endereo:
3FC92B6. Determine qual dever ser o valor binrio do campo bloco
que ser localizada pelo sistema de controle da cache.
32 bytes / bloco = 25 bytes / bloco 5 bits para o campo byte.
O endereo 3FC92B6 tem 28 bits.
Largura do campo bloco = 28 5 = 23 bits.
00111111110 010010010101 10110
5 bits
23 bits
2013.1 Organizao de Computadores
5 - 25
Memria Cache
5 - 26
Memria Cache
Tipos de Cache
A cache pode ser inserida em nveis:
Nvel 1 (L1 Level 1) cache inserida internamente no
processador, isto , encapsulada na mesma pastilha. Tem de 32 a
256 KB.
Nvel 2 (L2 Level 2) cache externa consiste em uma pastilha
(chip) instalada na placa-me do computador. Tem at 4MB.
Nvel 3 (L3 Level 3) existentes em alguns processadores,
quando estes possuem L1 e L2 internamente em seu invlucro;
nesse caso, localizada externamente ao processador, na placame.
2013.1 Organizao de Computadores
5 - 27
Memria Cache
5 - 28