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


Processador Operao Soma: 2 ns MP

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++) { Soma = Soma + 2; printf(Soma = %d\n, Soma); } loop

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. Acertos Total de acessos

Eficincia da cache =

2013.1 Organizao de Computadores

5-9

Profa. Morganna Diniz - UNIRIO

Memria Cache

Organizao da Memria Cache

Linha 0 Linha 1 Linha 2

Byte 3 Byte 3 Byte 3

Byte 2 Byte 2 Byte 2

Byte 1 Byte 1 Byte 1

Byte 0 Byte 0 Byte 0

Exemplo: linha com 4 bytes


Byte 3 Byte 2 Byte 1 Byte 0

Linha L - 1 tag Endereo do bloco

dados

tag = etiqueta
5 - 10
Profa. Morganna Diniz - UNIRIO

2013.1 Organizao de Computadores

Memria Cache

Organizao da Memria Principal


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 0

Bloco 1

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

Memria Cache

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

Mapeamento Direto
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 Blocos para a linha 0: 0, 4, 8, 12. Blocos para a linha 1: 1, 5, 9, 13. Blocos para a linha 2: 2, 6, 10, 14. Blocos para a linha 3: 3, 7, 11, 15.
2013.1 Organizao de Computadores

Byte 3 Byte 2 Byte 1 Byte 0 Bloco 12 Byte 3 Byte 2 Byte 1 Byte 0 Bloco 13 Byte 3 Byte 2 Byte 1 Byte 0 Bloco 14 Byte 3 Byte 2 Byte 1 Byte 0 Bloco 15
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
Qual bloco da MP? Qual linha da cache? Qual byte na linha?

Mapeamento Direto

Tag x bits

Linha y bits

Byte 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 11 bits
2013.1 Organizao de Computadores

Linha 11 bits
5 - 18

Byte 4 bits
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
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

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

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)
22 bits
2013.1 Organizao de Computadores

Byte
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 23 bits
2013.1 Organizao de Computadores

5 bits
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