Você está na página 1de 28

5

Memria Cache

Objetivos da aula
1. Tipos de Memria Cache
2. Organizao
3. Funcionamento

2013.1 Organizao de Computadores

5-1

Profa. Morganna Diniz - UNIRIO

Memria Cache

Introduo

Por que existe memria cache?


1. Diferena de velocidade Processador/MP
2. Conceito de localidade

2013.1 Organizao de Computadores

5-2

Profa. Morganna Diniz - UNIRIO

Memria Cache

Introduo - Velocidade Processador/MP


Em toda execuo de uma instruo, o processador acessa a
memria principal (sem cache) pelo menos uma vez, para
buscar a instruo e transferi-la para um dos registradores do
processador.
Um ciclo de memria atualmente bem mais demorado que
a execuo da instruo propriamente dita.
Os processadores esto sendo aperfeioados mais
rapidamente que as memrias aumento da diferena nos
desempenhos.
Soluo: incluso de dispositivo de memria entre
processador e MP.
2013.1 Organizao de Computadores

5-3

Profa. Morganna Diniz - UNIRIO

Memria Cache

Introduo - Velocidade Processador/MP


MP

Processador
Operao
Soma: 2 ns

Transferncia: 100 ns

2013.1 Organizao de Computadores

5-4

Profa. Morganna Diniz - UNIRIO

Memria Cache

Introduo Conceito de Localidade

Definio forma como os programas so escritos pelo


programador e executados pelo processador.

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.

2013.1 Organizao de Computadores

5-5

Profa. Morganna Diniz - UNIRIO

Memria Cache

Introduo Conceito de Localidade

Soma = 0;
for (i = 1; i < 100; i++)
{

loop

Soma = Soma + 2;
printf(Soma = %d\n, Soma);
}

2013.1 Organizao de Computadores

5-6

Profa. Morganna Diniz - UNIRIO

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.

2013.1 Organizao de Computadores

5-7

Profa. Morganna Diniz - UNIRIO

Memria Cache

Organizao e Funcionamento
Processador
Transferncia palavra por palavra

Cache
Transferncia bloco por bloco

MP

2013.1 Organizao de Computadores

5-8

Profa. Morganna Diniz - UNIRIO

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 =

2013.1 Organizao de Computadores

5-9

Acertos
Total de acessos

Profa. Morganna Diniz - UNIRIO

Memria Cache

Organizao da 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

Profa. Morganna Diniz - UNIRIO

Memria Cache

Organizao da Memria Principal

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

Profa. Morganna Diniz - UNIRIO

Memria Cache

Mapeamento de Dados MP/Cache


MP possui N endereos (endereos de zero a N-1) de tamanho
E (8 bits no exemplo), ou seja, 2E = N.
MP possui B Blocos (numerados de zero a B-1)
Cada bloco da MP possui X clulas (X = 4 no exemplo).
Nmero de blocos da MP: B = N / X
Cada linha da cache possui X bytes e L linhas
Tamanho da cache (L * X) sempre menor que o tamanho da
MP (B * X)
2013.1 Organizao de Computadores

5 - 12

Profa. Morganna Diniz - UNIRIO

Memria Cache

Tipos de Mapeamento

Mapeamento direto cada bloco da MP est diretamente


mapeado a uma linha especfica da cache.
Mapeamento associativo no h local fixo na cache para
alocao de um bloco de MP.
Como mapear os endereos dos blocos com os endereos
das linhas?
Como o sistema de controle da cache determina se o byte
requerido est na cache?
2013.1 Organizao de Computadores

5 - 13

Profa. Morganna Diniz - UNIRIO

Byte 3 Byte 2 Byte 1 Byte 0 Bloco 0

Memria Cache

Byte 3 Byte 2 Byte 1 Byte 0 Bloco 1

Mapeamento Direto

Byte 3 Byte 2 Byte 1 Byte 0 Bloco 2


Byte 3 Byte 2 Byte 1 Byte 0 Bloco 3

Cache

Byte 3 Byte 2 Byte 1 Byte 0 Bloco 4

Linha 0 Byte 3 Byte 2 Byte 1 Byte 0

Byte 3 Byte 2 Byte 1 Byte 0 Bloco 5

Linha 1 Byte 3 Byte 2 Byte 1 Byte 0

Byte 3 Byte 2 Byte 1 Byte 0 Bloco 6

Linha 2 Byte 3 Byte 2 Byte 1 Byte 0

Byte 3 Byte 2 Byte 1 Byte 0 Bloco 7

Linha 3 Byte 3 Byte 2 Byte 1 Byte 0


Blocos para a linha 0: 0, 4, 8, 12.

Byte 3 Byte 2 Byte 1 Byte 0 Bloco 12

Blocos para a linha 1: 1, 5, 9, 13.

Byte 3 Byte 2 Byte 1 Byte 0 Bloco 13

Blocos para a linha 2: 2, 6, 10, 14.

Byte 3 Byte 2 Byte 1 Byte 0 Bloco 14

Blocos para a linha 3: 3, 7, 11, 15.

Byte 3 Byte 2 Byte 1 Byte 0 Bloco 15

2013.1 Organizao de Computadores

5 - 14

Profa. Morganna Diniz - UNIRIO

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.

2013.1 Organizao de Computadores

5 - 15

Profa. Morganna Diniz - UNIRIO

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

Endereo interpretado pela cache:


Tag (2x blocos por linha) bloco armazenado. Ex: x = 2, pois
existem 4 blocos associados por linha.
Linha (2y linhas) endereo da linha onde est o dado. Ex: x = 2,
pois existem 4 linhas na cache por bloco.
Byte (2k bytes por bloco) indica o byte solicitado na linha.
2013.1 Organizao de Computadores

5 - 16

Profa. Morganna Diniz - UNIRIO

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

Profa. Morganna Diniz - UNIRIO

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

2013.1 Organizao de Computadores

5 - 18

Profa. Morganna Diniz - UNIRIO

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

Byte 3 Byte 2 Byte 1 Byte 0 Bloco 0


Byte 3 Byte 2 Byte 1 Byte 0 Bloco 1
Byte 3 Byte 2 Byte 1 Byte 0 Bloco 2
Byte 3 Byte 2 Byte 1 Byte 0 Bloco 3
Byte 3 Byte 2 Byte 1 Byte 0 Bloco 4
Byte 3 Byte 2 Byte 1 Byte 0 Bloco 5
Byte 3 Byte 2 Byte 1 Byte 0 Bloco 6
Byte 3 Byte 2 Byte 1 Byte 0 Bloco 7

Um bloco pode ser armazenado em qualquer linha.


preciso escolher qual bloco dever ser substitudo.
2013.1 Organizao de Computadores

5 - 20

Profa. Morganna Diniz - UNIRIO

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.

2013.1 Organizao de Computadores

5 - 21

Profa. Morganna Diniz - UNIRIO

Memria Cache

Mapeamento Associativo
Bloco (tag)

Byte
Qual o byte no bloco?
Qual o bloco da MP?

Endereamento interpretado pela cache:


Tag nmero do bloco. Ex: 3 bits.
Byte byte na linha. Ex: 2 bits.

2013.1 Organizao de Computadores

5 - 22

Profa. Morganna Diniz - UNIRIO

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

Profa. Morganna Diniz - UNIRIO

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

Profa. Morganna Diniz - UNIRIO

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

Profa. Morganna Diniz - UNIRIO

Memria Cache

Poltica de Escrita pela Memria Cache


Quando uma operao de escrita ocorre na cache.
Problema a MP pode ser acessada tanto pela cache quanto
por elementos de E/S.
Tcnicas:
1. Escrita em ambas cache e MP.
2. Escrita somente no retorno apenas cache.
3. Escrita uma vez cache e MP atravs de um nico barramento.
2013.1 Organizao de Computadores

5 - 26

Profa. Morganna Diniz - UNIRIO

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

Profa. Morganna Diniz - UNIRIO

Memria Cache

Concurso Petrobrs 2010


Considere uma memria cache de 64 KBytes. A transferncia de dados
entre a memria principal e a memria cache ocorre em blocos de 4
bytes cada. O nmero de bits necessrios para representar cada linha da
memria cache :
(A) 8
(B) 14
(C) 16
(D) 24
(E) 32
Gabarito: B

2013.1 Organizao de Computadores

5 - 28

Profa. Morganna Diniz - UNIRIO

Você também pode gostar