Escolar Documentos
Profissional Documentos
Cultura Documentos
Memria Cache
5-1
Memria Cache
Introduo
Por que existe memria cache? 1. Diferena de velocidade Processador/MP 2. Conceito de localidade
5-2
Memria Cache
5-3
Memria Cache
Transferncia: 100 ns
5-4
Memria Cache
5-5
Memria Cache
Soma = 0; for (i = 1; i < 100; i++) { Soma = Soma + 2; printf(Soma = %d\n, Soma); } loop
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. Acertos Total de acessos
Eficincia da cache =
5-9
Memria Cache
dados
tag = etiqueta
5 - 10
Profa. Morganna Diniz - UNIRIO
Memria Cache
Bloco 0
Bloco 1
5 - 11
Memria Cache
5 - 12
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
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.
5 - 15
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
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 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
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?
Endereamento interpretado pela cache: Tag nmero do bloco. Ex: 3 bits. Byte byte na linha. Ex: 2 bits.
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)
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
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