You are on page 1of 69

Vis˜

ao geral do sistema de mem´
oria do computador

Princ´ıpios da mem´
oria cache

Elementos de projeto da mem´
oria cache

Mem´oria Cache
Prof. Dr. Maur´ıcio Fernando Lima Pereira
Instituto de Computa¸c˜ao - UFMT

2 de maio de 2012

Vis˜
ao geral do sistema de mem´
oria do computador

Princ´ıpios da mem´
oria cache

Elementos de projeto da mem´
oria cache

Conte´udo

1

Vis˜ao geral do sistema de mem´
oria do computador

2

Princ´ıpios da mem´oria cache

3

Elementos de projeto da mem´
oria cache

Conte´
udo extra´ıdo de
Cap´ıtulo 4 do livro do Stallings

Vis˜
ao geral do sistema de mem´
oria do computador

Princ´ıpios da mem´
oria cache

Elementos de projeto da mem´
oria cache

Introdu¸c˜ao

Mem´oria de computador ´e composta por uma vasta gama de:
tipos
tecnologias
organiza¸c˜ao
desempenho
custo

Hierarquia de mem´
oria
Internas (Processador)
Externas (Dispositivos de E/S)

Vis˜ ao geral do sistema de mem´ oria do computador Princ´ıpios da mem´ oria cache Introdu¸c˜ao Caracter´ısticas dos sistemas de mem´ oria Elementos de projeto da mem´ oria cache .

16. 32 bits) A unidade de organiza¸c˜ ao natural Em geral o tamanho em bits de um inteiro e da instru¸c˜ ao Varia¸co ˜es na arquiteturas: x86 tem instru¸co ˜es de tamanhos diferentes Externamente ao n´ umero de Bytes ou palavras . RAM) Externa (discos. fitas) Capacidade Internamente relacionado ao tamanho de palavra da m´aquina(8.Vis˜ ao geral do sistema de mem´ oria do computador Princ´ıpios da mem´ oria cache Elementos de projeto da mem´ oria cache Introdu¸c˜ao Caracter´ısticas dos sistemas de mem´ oria Localiza¸c˜ ao CPU (registradores. mem´ oria de microprograma) Interna (cache.

.Vis˜ ao geral do sistema de mem´ oria do computador Princ´ıpios da mem´ oria cache Elementos de projeto da mem´ oria cache Introdu¸c˜ao Caracter´ısticas dos sistemas de mem´ oria Unidades endere¸c´ aveis Menor local que pode ser endere¸cado exclusivamente. Por Byte Por Palavra Endere¸co com A bits permite endere¸car 2A unidades Unidade de transferˆ encia Interna: Normalmente controlada pela largura do barramento. Externa: Normalmente um bloco que ´e muito maior que uma palavra.

fita. . Por exemplo.Vis˜ ao geral do sistema de mem´ oria do computador Princ´ıpios da mem´ oria cache Elementos de projeto da mem´ oria cache Introdu¸c˜ao Caracter´ısticas dos sistemas de mem´ oria M´ etodos de acesso Sequencial: Come¸ca no in´ıcio e lˆe em ordem. Direto: Blocos individuais possuem endere¸co exclusivo. Por exemplo. Tempo de acesso depende da localiza¸c˜ ao dos dados e local anterior. Acesso saltando para vizinhan¸ca com busca sequencial para localiza¸c˜ ao final Tempo de acesso depende da localiza¸c˜ ao e local anterior. disco.

. cache.e.e. . P. P. RAM. Associativo: Dados s˜ ao localizados por uma compara¸c˜ ao com conte´ udo de uma parte do armazenamento Analisa-se alguns bits do endere¸co Tempo de acesso ´e independente do local ou acesso anterior..Vis˜ ao geral do sistema de mem´ oria do computador Princ´ıpios da mem´ oria cache Elementos de projeto da mem´ oria cache Introdu¸c˜ao Caracter´ısticas dos sistemas de mem´ oria M´ etodos de acesso Aleat´ orio: Endere¸cos individuais identificam localiza¸co ˜es com exatid˜ ao. Tempo de acesso ´e independente da localiza¸c˜ ao ou acesso anterior.

t˜ao importante quanto a capacidade ´e o desempenho Como avaliar este desempenho? Trˆes parˆametros de desempenho Tempo de acesso (latˆ encia): Mem´ oria de acesso aleat´ orio: Tempo entre apresentar o endere¸co e obter os dados v´ alidos Mem´ oria de acesso n˜ ao aleat´ orio: Tempo gasto para posicionar mecanismo de leitura Tempo de ciclo de mem´ oria Tempo de ciclo = tempo de acesso + recupera¸c˜ ao. Elimina¸c˜ ao de transientes nas linhas de sinais ou restaura¸c˜ ao caso os dados sejam lidos de forma destrutiva . Recupera¸c˜ ao: Tempo que pode ser exigido para a mem´ oria se ”recuperar”antes do pr´ oximo acesso.Vis˜ ao geral do sistema de mem´ oria do computador Princ´ıpios da mem´ oria cache Elementos de projeto da mem´ oria cache Introdu¸c˜ao Caracter´ısticas dos sistemas de mem´ oria Para o usu´ario.

Vis˜ ao geral do sistema de mem´ oria do computador Princ´ıpios da mem´ oria cache Elementos de projeto da mem´ oria cache Introdu¸c˜ao Caracter´ısticas dos sistemas de mem´ oria Trˆes parˆametros de desempenho: Taxa de transferˆ encia Taxa em que os dados podem ser movidos Mem´ oria de acesso aleat´ orio Taxa de transferencia = 1 T empo de ciclo Mem´ oria de acesso n˜ ao aleat´ orio TN = TA + n R TN → Tempo m´edio pra ler ou escrever N bits TA → Tempo de acesso m´edio n → N´ umero de bits R → Taxa de transferˆencia em bits por segundo (bps) .

Magn´etico: Disco e fita. ´ Optico: CD e DVD . cache. registradores.Vis˜ ao geral do sistema de mem´ oria do computador Princ´ıpios da mem´ oria cache Elementos de projeto da mem´ oria cache Introdu¸c˜ao Caracter´ısticas dos sistemas de mem´ oria Tipo f´ısico Semicondutor: RAM.

Vis˜ ao geral do sistema de mem´ oria do computador Princ´ıpios da mem´ oria cache Elementos de projeto da mem´ oria cache Introdu¸c˜ao Hierarquia de mem´ oria Restri¸c˜oes de mem´ oria de um computador est˜ao relacionadas a trˆes quest˜oes: Quanto? Capacidade. menor custo por bit Maior capacidade. tempo de acesso mais lento Solu¸c˜ao ´e a hierarquia de mem´ oria . Menor tempo de acesso A que custo? Boa rela¸c˜ ao de custo Diversas tecnologias para implementar sistemas de mem´oria Tempo de acesso mais r´apido e maior custo por bit Maior capacidade. Que velocidade? Quanto mais r´ apido a CPU for atendida melhor.

Vis˜ ao geral do sistema de mem´ oria do computador Princ´ıpios da mem´ oria cache Elementos de projeto da mem´ oria cache Introdu¸c˜ao Hierarquia de mem´ oria Enquanto se desce na hierarquia 1 2 3 4 Diminui¸c˜ao do custo por bit Aumento da capacidade Aumento do tempo de acesso Frequˆencia de acesso `a mem´ oria do computador .

000 palavras e tempo de acesso 0. 01)µs .capacidade 1.01µs N´ıvel 2 .Estudo de caso Suponha um computador com 2 n´ıveis de mem´oria Nivel 1 .000 palavras e tempo de acesso 0.1µs Se informa¸c˜ao em n´ıvel 1: processador acesso diretamente Se informa¸c˜ao no n´ıvel 2: processador traz para n´ıvel 1 e depois acesso Ignoramos o tempo de trazer do n´ıvel 2 para o 1 P1 e P2: % de acertos no n´ıvel T empoM e´dio = P 1 ∗ 0. 01µs + P 2 ∗ (0.Vis˜ ao geral do sistema de mem´ oria do computador Princ´ıpios da mem´ oria cache Elementos de projeto da mem´ oria cache Introdu¸c˜ao Hierarquia de mem´ oria . 1 + 0.capacidade 100.

Determine o tempo de acesso m´edio desse n´ıvel. o tempo de acesso ´e de 9 ns para dados que se encontram nesse n´ıvel. e de 60 ns no outro n´ıvel. O n´ıvel mais alto do sistema de mem´oria tem uma taxa de acertos de 85% e um tempo de acesso de 8 ns.Vis˜ ao geral do sistema de mem´ oria do computador Princ´ıpios da mem´ oria cache Elementos de projeto da mem´ oria cache Introdu¸c˜ao Hierarquia de mem´ oria . 2 Um sistema de mem´ oria com dois n´ıveis tem um tempo m´edio de acesso de 14 ns.Exerc´ıcios 1 Em um computador com 2 n´ıveis de mem´ oria. um n´ıvel possui uma taxa m´edia de acerto de 60%. Qual ´e o tempo de acesso do n´ıvel mais baixo? .

Vis˜ ao geral do sistema de mem´ oria do computador Princ´ıpios da mem´ oria cache Elementos de projeto da mem´ oria cache Introdu¸c˜ao Hierarquia de mem´ oria O uso de dois n´ıveis de mem´ oria funciona bem se as condi¸c˜oes forem satisfeitas 1 2 3 4 Diminui¸c˜ao do custo por bit Aumento da capacidade Aumento do tempo de acesso Frequˆencia de acesso `a mem´ oria do computador Para o item 1 a 3 tem-se que diferentes tecnologias podem ser aplicadas na constru¸c˜ao de mem´ orias Mas o que garante que o item 4 ser´a atendido? .

Princ´ıpio da localidade Durante execu¸c˜ao de um programa instru¸c˜ oes e dados tendem a se agrupar Por exemplo: loops iterativos. fun¸c˜ oes (instru¸c˜oes) Localidade espacial Localiza¸c˜ oes de mem´ oria com endere¸cos numericamente similares a uma localiza¸c˜ao de mem´ oria recentemente acessada provavelmente ser˜ao acessadas no futuro pr´ oximo. na esperan¸ca de antecipar futuras utiliza¸c˜ oes Localidade temporal Localiza¸c˜ oes de mem´ oria recentemente acessadas s˜ao acessadas novamente .Vis˜ ao geral do sistema de mem´ oria do computador Princ´ıpios da mem´ oria cache Elementos de projeto da mem´ oria cache Introdu¸c˜ao Hierarquia de mem´ oria . Caches exploram essa caracter´ıstica dos programas trazendo mais dados dos que os requisitados.

Os conjuntos de dados e programas atuais Eventualmente ocorre uma troca de conjuntos.Princ´ıpio da localidade No estudo de caso anterior N´ıvel 2 . mem´ oria ´e o principal local de armazenamento do computador Cache com uma por¸c˜ao menor e mais r´apida Invis´ıvel para CPU (programador) Dispositivo para organizar a movimenta¸c˜ao de dados entre mem´ oria e registradores (melhorar desempenho) Conjunto de dispositivos de mem´ oria vol´atil .Vis˜ ao geral do sistema de mem´ oria do computador Princ´ıpios da mem´ oria cache Elementos de projeto da mem´ oria cache Introdu¸c˜ao Hierarquia de mem´ oria . com trechos saindo do n´ıvel 1 para o n´ıvel 2 para dar espa¸co para um novo trecho Processadores com centenas de registradores para aumentar a localidade dos dados e ganhar velocidade Por outro lado.Todo o programa e todos os dados N´ıvel 1 .

busca da solicita¸c˜ao na cache Caso esteja presente a palavra solicitada. cache atende CPU Caso contr´ario.Vis˜ ao geral do sistema de mem´ oria do computador Princ´ıpios da mem´ oria cache Elementos de projeto da mem´ oria cache Princ´ıpios da mem´oria cache Cache ´e uma pequena quantidade de mem´ oria r´apida Fica entre a mem´ oria principal normal e a CPU Pode estar localizada no chip da CPU Visa obter velocidade C´opia do que est´a presente na mem´ oria principal Solicita¸c˜oes da CPU a mem´ oria. cache traz um bloco de palavras ´e lido para a cache e depois entregue a CPU .

Vis˜ ao geral do sistema de mem´ oria do computador Princ´ıpios da mem´ oria cache Elementos de projeto da mem´ oria cache Princ´ıpios da mem´oria cache C´opia do bloco traz al´em da palavra que se est´a interessado. palavras adjacentes (explorar localidade) .

Vis˜ ao geral do sistema de mem´ oria do computador Princ´ıpios da mem´ oria cache Princ´ıpios da mem´oria cache Elementos de projeto da mem´ oria cache .

Vis˜ ao geral do sistema de mem´ oria do computador Princ´ıpios da mem´ oria cache Elementos de projeto da mem´ oria cache Princ´ıpios da mem´oria cache Mem´oria principal tem 2n palavras endere¸c´aveis. bits de controle e tags M >> C Como existem mais blocos do que linhas. com cada palavra tendo um endere¸co distinto de n bits Mem´oria principal est´a dividida em M blocos de K palavras n (M = 2K ) Cache est´a dividida em C linhas que cont´em o bloco de K palavras. n˜ao ´e poss´ıvel colocar todos os M blocos na cache. Assim a tag identifica a que bloco da mem´ oria principal pertence o dado que est´a em um determinada linha .

Vis˜ ao geral do sistema de mem´ oria do computador Princ´ıpios da mem´ oria cache Princ´ıpios da mem´oria cache Elementos de projeto da mem´ oria cache .

Tag em geral ´e parte do endere¸co .Vis˜ ao geral do sistema de mem´ oria do computador Princ´ıpios da mem´ oria cache Elementos de projeto da mem´ oria cache Princ´ıpios da mem´oria cache Observa¸c˜ oes Na linha de cache existe espa¸co para tag e bits de controle A largura da linha sem tag e bits de controle ´e do tamanho do bloco de mem´ oria A qualquer momento um subconjunto de blocos da mem´oria pode estar nas linhas da cache Tag ajuda a identificar de qual bloco da mem´oria vieram os dados que est˜ao na linha.

Vis˜ ao geral do sistema de mem´ oria do computador Princ´ıpios da mem´ oria cache Princ´ıpios da mem´oria cache Elementos de projeto da mem´ oria cache .

entrega da cache `a CPU. . 6 Cache inclui tags para identificar qual bloco da mem´oria principal est´a em cada slot da cache.Vis˜ ao geral do sistema de mem´ oria do computador Princ´ıpios da mem´ oria cache Elementos de projeto da mem´ oria cache Princ´ıpios da mem´oria cache 1 CPU requisita conte´ udo do local de mem´ oria. 2 Verifica se os dados est˜ao em cache. 4 Se n˜ao. lˆe bloco solicitado da mem´ oria principal para a cache. apanha da cache (r´apido). 3 Se estiverem. 5 Depois.

Vis˜ ao geral do sistema de mem´ oria do computador Princ´ıpios da mem´ oria cache Princ´ıpios da mem´oria cache Elementos de projeto da mem´ oria cache .

Vis˜ ao geral do sistema de mem´ oria do computador Princ´ıpios da mem´ oria cache Elementos de projeto da mem´ oria cache Princ´ıpios da mem´oria cache Existe menos linhas de cache do que bloco de mem´oria principal Necessidade de estabelecer um algoritmo para mapear blocos da mem´oria principal para a cache Criar mecanismos para se saber em que linha da cache est´a um determinado bloco da mem´ oria principal A escolha da fun¸c˜ao de mapeamento determinada o desempenho e como a cache est´a organizada. Existem 3 t´ecnicas: Direta Associativa Associativa em conjunto .

Vis˜ ao geral do sistema de mem´ oria do computador Princ´ıpios da mem´ oria cache Elementos de projeto da mem´oria cache Elementos de projeto da mem´ oria cache .

Vis˜ ao geral do sistema de mem´ oria do computador Princ´ıpios da mem´ oria cache Elementos de projeto da mem´ oria cache Elementos de projeto da mem´oria cache Fun¸c˜ ao de mapeamento . de linhas da cache .Mapeamento direto A t´ecnica mais simples de mapeamento Cada bloco da mem´ oria principal a apenas uma linha de cache poss´ıvel O mapeamento direto expresso como Linha de cache = Bloco de mem´ oria mod Nro.

Mapeamento direto Elementos de projeto da mem´ oria cache .Vis˜ ao geral do sistema de mem´ oria do computador Princ´ıpios da mem´ oria cache Elementos de projeto da mem´oria cache Fun¸c˜ ao de mapeamento .

. .Vis˜ ao geral do sistema de mem´ oria do computador Princ´ıpios da mem´ oria cache Elementos de projeto da mem´ oria cache Elementos de projeto da mem´oria cache Fun¸c˜ ao de mapeamento . . . . m+1. m-1 m-11.. . 2m. . m. 2m-1.. .. 2s -1 .3m-1.Mapeamento direto O efeito deste mapeamento ´e que os blocos da mem´oria principal s˜ao alocados nas linhas da cache da seguinte forma: Linha de cache Blocos de mem´ oria principal mapeados 0 0.. 2s -m+1 . . . . 2s -m 1 1. . . 2m+1.

Vis˜ ao geral do sistema de mem´ oria do computador Princ´ıpios da mem´ oria cache Elementos de projeto da mem´ oria cache Elementos de projeto da mem´oria cache Mapeamento direto ... 63 Linha 15 Bloco 16 64.. 14. . 1. 7 Linha 1 Bloco 2 8. 5. seja usada nessa m´aquina. Suponha que uma cache mapeada diretamente. consistindo em 16 linhas com 4 bytes cada (64 bytes . 65.Exemplo Considere uma m´aquina com uma mem´ oria principal endere¸cavel por byte com 1024 bytes (210 ) e um tamanho de bloco de 4 bytes. 61. 9. 3 Linha 0 Bloco 1 4. 13. 2. 11 Linha 2 Bloco 3 12.24 linhas). 6. 62. 10. 67 Linha 0 .. Bloco da mem´oria Endere¸cos Linha na cache Bloco 0 0. 66. Bloco 15 60.. Linha .. 15 Linha 3 .

Vis˜ ao geral do sistema de mem´ oria do computador Princ´ıpios da mem´ oria cache Elementos de projeto da mem´ oria cache Elementos de projeto da mem´oria cache Mapeamento direto A fun¸c˜ao de mapeamento pode ser implementada por meio do endere¸co da mem´ oria principal Para fins de mapeamento e acesso a cache cada endere¸co de mem´oria pode ser visto como 3 partes 1 2 3 Tag (s-r) Linha (r) Byte ou Palavra (w bits menos significativos) Informa¸c˜oes para mapeamento Tamanho de endere¸co = (s+w) bits N´ umero de unidades endere¸c´aveis = 2(s+w) palavras ou bytes Tamanho do bloco = Tamanho da linha = 2w palavras ou bytes (s+w) N´ umero de blocos na mem´ oria principal = 2 2w = 2s N´ umero de linhas na cache = 2r linhas Tamanho da cache = 2r+w bytes ou palavras .

) Cache com 64 Bytes de mem´ oria (26 ) bytes Em cada bloco da mem´ oria e linha de cache se tem 4 bytes Informa¸c˜oes para mapeamento Tamanho de endere¸co = (10) bits (s+w) N´ umero de unidades endere¸c´aveis = 210 bytes Tamanho do bloco e da linha = 4 ou 22 bytes (w = 2) N´ umero de blocos na mem´ oria principal = 28 blocos (s = 8) N´ umero de linhas na cache = 24 linhas (r=4) Tag precisa 4 bits (s-r) 0000 TAG 0000 LINHA 00 PALAVRA .Vis˜ ao geral do sistema de mem´ oria do computador Princ´ıpios da mem´ oria cache Elementos de projeto da mem´ oria cache Elementos de projeto da mem´oria cache Mapeamento direto .Exemplo simples Mem´oria com 1 KB e endere¸cada por byte (210 bytes ou end.

Vis˜ ao geral do sistema de mem´ oria do computador Princ´ıpios da mem´ oria cache Elementos de projeto da mem´ oria cache Elementos de projeto da mem´oria cache Mapeamento direto Como descobrir se a linha de cache est´a presente .

Exerc´ıcio 1 Cache de 64 KBytes Mem´oria principal de 16 MBytes com cada byte endere¸c´avel diretamente por endere¸co Bloco de 4 bytes (Mem´ oria principal ↔ cache) .Vis˜ ao geral do sistema de mem´ oria do computador Princ´ıpios da mem´ oria cache Elementos de projeto da mem´ oria cache Elementos de projeto da mem´oria cache Mapeamento direto .

) Cache com 64 Bytes de mem´ oria (26 ) bytes Em cada bloco da mem´ oria e linha de cache se tem 4 bytes Mapear o endere¸co 95 (0001011111)2 Mapear o endere¸co 335 (0101001111)2 .Exerc´ıcio 2 Mem´oria com 1 KB e endere¸cada por byte (210 bytes ou end.Vis˜ ao geral do sistema de mem´ oria do computador Princ´ıpios da mem´ oria cache Elementos de projeto da mem´ oria cache Elementos de projeto da mem´oria cache Mapeamento direto .

Exerc´ıcio 3 Mem´oria com 256 MB e endere¸cada por byte Cache com 8 MB Em cada bloco da mem´ oria e linha de cache se tem 64 bytes Mapear o endere¸co 6984 (0001101101001000)2 Mapear o endere¸co 3492 (110110100100)2 .Vis˜ ao geral do sistema de mem´ oria do computador Princ´ıpios da mem´ oria cache Elementos de projeto da mem´ oria cache Elementos de projeto da mem´oria cache Mapeamento direto .

Cache consiste de 16K linhas .Vis˜ ao geral do sistema de mem´ oria do computador Princ´ıpios da mem´ oria cache Elementos de projeto da mem´ oria cache Elementos de projeto da mem´oria cache Mapeamento direto Cache de 64 KBytes Mem´oria principal de 16 MBytes com cada byte endere¸c´avel diretamente por endere¸co de 224 (224 = 16 M) Bloco de 4 bytes (Mem´ oria principal ↔ cache) Mem´oria principal consiste de 4M blocos de 4 bytes.

Vis˜ ao geral do sistema de mem´ oria do computador Princ´ıpios da mem´ oria cache Elementos de projeto da mem´oria cache Mapeamento direto Elementos de projeto da mem´ oria cache .

Vantagens e desvantagens Simples e pouco dispendiosa para se implementar Por´em implica que existe um local de cache fixo para cada bloco Se o programa referenciar frequentemente dois blocos diferentes que estejam mapeados para a mesma linha. Lembra-se do que foi descartado. J´a buscado. Exemplo Matriz de 64KB × 64BK com acesso por elementos na linha Uso de cache v´ıtima entre a cache mapeada diretamente e mem´oria Menor penalidade de falha.Vis˜ ao geral do sistema de mem´ oria do computador Princ´ıpios da mem´ oria cache Elementos de projeto da mem´ oria cache Elementos de projeto da mem´oria cache Mapeamento direto . Usa novamente com pouca penalidade. Totalmente associativa. 4 a 16 linhas de cache. os blocos ser˜ao repetidamente trocados. .

Para determinar se um bloco est´a na cache. a qual identifica que bloco da mem´ oria principal ele corresponde. compara-se simultaneamente as tags de cada linha . permitindo que cada bloco da mem´ oria principal seja carregado em qualquer linha da cache Endere¸co de mem´ oria ´e dividido em 2 partes 1 2 Tag (s) Palavra (w) Controle dos blocos carregados na cache se d´a pela Tag.Caracter´ısticas Compensa a desvantagem do mapeamento direto.Vis˜ ao geral do sistema de mem´ oria do computador Princ´ıpios da mem´ oria cache Elementos de projeto da mem´ oria cache Elementos de projeto da mem´oria cache Mapeamento associativo .

Exemplo simples Elementos de projeto da mem´ oria cache .Vis˜ ao geral do sistema de mem´ oria do computador Princ´ıpios da mem´ oria cache Elementos de projeto da mem´oria cache Mapeamento associativo .

Exemplo simples Mem´oria com 1 KB e endere¸cada por byte (210 bytes ou end.Vis˜ ao geral do sistema de mem´ oria do computador Princ´ıpios da mem´ oria cache Elementos de projeto da mem´ oria cache Elementos de projeto da mem´oria cache Mapeamento associativo .) Cache com 64 Bytes de mem´ oria (26 ) bytes Em cada bloco da mem´ oria e linha de cache se tem 4 bytes Informa¸c˜oes para mapeamento Tamanho de endere¸co = (10) bits (s+w) N´ umero de unidades endere¸c´aveis = 210 bytes Tamanho do bloco e da linha = 4 ou 22 bytes (w = 2) N´ umero de blocos na mem´ oria principal = 28 blocos (s = 8) Tag tem 8 bits 00000000 TAG 00 PALAVRA .

Vis˜ ao geral do sistema de mem´ oria do computador Princ´ıpios da mem´ oria cache Elementos de projeto da mem´ oria cache Elementos de projeto da mem´oria cache Mapeamento associativo Como descobrir se a linha de cache est´a presente ? .

Exemplo Elementos de projeto da mem´ oria cache .Vis˜ ao geral do sistema de mem´ oria do computador Princ´ıpios da mem´ oria cache Elementos de projeto da mem´oria cache Mapeamento associativo .

Vis˜ ao geral do sistema de mem´ oria do computador Princ´ıpios da mem´ oria cache Elementos de projeto da mem´ oria cache Elementos de projeto da mem´oria cache Mapeamento Associativo .Exerc´ıcio 4 Mem´oria com 1GB e endere¸cada por byte Cache com 4 MB Em cada bloco da mem´ oria e linha de cache se tem 128 bytes Determine a quantidade de bits para palavra e tag .

Complexidade do circuito necess´ario para comparar tags .Vis˜ ao geral do sistema de mem´ oria do computador Princ´ıpios da mem´ oria cache Elementos de projeto da mem´ oria cache Elementos de projeto da mem´oria cache Mapeamento Associativo .Vantagens e desvantagens Flexibilidade sobre qual bloco substituir Algoritmos de substitui¸c˜ao Pesquisa da tag na cache ´e dispendiosa.

Assuma que a cache sempre ´e escrita de forma atˆomica com quatro bytes vindos de um endere¸co de mem´ oria alinhado em uma fronteira de palavra de 32 bits. 10 bits e 56.Vis˜ ao geral do sistema de mem´ oria do computador Princ´ıpios da mem´ oria cache Elementos de projeto da mem´ oria cache Elementos de projeto da mem´oria cache Exerc´ıcio Um sistema de computador possui um mapa de mem´oria de 4 Gbytes. as dimens˜ oes do r´otulo (tag) da cache.272 bits. b) 14 bits.272 bits.320 bits.272 bits. e que ela usa 1 bit de validade por linha de cache. e) 22 bits. d) 20 bits. . usando endere¸camento a byte e uma mem´oria cache com organiza¸c˜ao de mapeamento direto. 10 bits e 54. respectivamente: a) 12 bits. 18 bits e 56. 12 bits e 54. c) 20 bits. A cache tem capacidade de armazenar at´e 1. 18 bits e 54. Neste caso.320 bits. do ´ındice e o tamanho da cache s˜ao.024 palavras de 32 bits provenientes do mapa de mem´oria.

onde se refor¸ca os pontos fortes e se minimiza as desvantagens de cada t´ecnica Divide-se a cache em conjuntos que correspondem a uma s´erie de k linhas (k-way ) Determinado bloco da mem´ oria principal ´e mapeado a qualquer linha em determinado conjunto da cache.Vis˜ ao geral do sistema de mem´ oria do computador Princ´ıpios da mem´ oria cache Elementos de projeto da mem´ oria cache Elementos de projeto da mem´oria cache Mapeamento Associativo em Conjunto (Set Associtative) Meio termo entre o mapeamento direto e o associativo. Por exemplo: Bloco B pode estar em qualquer linha do conjunto i. Determinado bloco pode estar em uma de 2 linhas em apenas um conjunto. Outro exemplo: 2 linhas por conjunto: Mapeamento associativo com 2 linhas. .

Vis˜ ao geral do sistema de mem´ oria do computador Princ´ıpios da mem´ oria cache Elementos de projeto da mem´oria cache Mapeamento Associativo em Conjunto (Set Associtative) Elementos de projeto da mem´ oria cache .

Vis˜ ao geral do sistema de mem´ oria do computador Princ´ıpios da mem´ oria cache Elementos de projeto da mem´oria cache Mapeamento Associativo em Conjunto (Set Associtative) Elementos de projeto da mem´ oria cache .

Set (d bits) e Palavra (w bits) Utiliza-se d bits para se representar os 2d conjuntos existentes na cache Utiliza-se w bits para se determinar em qual dos 2w bytes ou palavras em cada linha Tal como nos outros mapeamentos os bits da Tag servem para determinar se houve um cache hit ou cache miss .Vis˜ ao geral do sistema de mem´ oria do computador Princ´ıpios da mem´ oria cache Elementos de projeto da mem´ oria cache Elementos de projeto da mem´oria cache Mapeamento Associativo em Conjunto (Set Associtative) L´ogica de controle de cache interpreta um endere¸co da mem´oria como trˆes campos Tag (s-d bits) .

Vis˜ ao geral do sistema de mem´ oria do computador Princ´ıpios da mem´ oria cache Elementos de projeto da mem´oria cache Mapeamento Associativo em Conjunto (Set Associtative) Elementos de projeto da mem´ oria cache .

Exemplo simples Mem´oria com 1 KB e endere¸cada por byte (210 bytes ou end. = 23 conjuntos Tag precisa 5 bits (s-d) 00000 TAG 000 CONJUNTO 00 PALAVRA . de linhas/linhas no cjto.) Cache com 64 Bytes de mem´ oria (26 ) bytes Em cada bloco da mem´ oria e linha de cache se tem 4 bytes.Vis˜ ao geral do sistema de mem´ oria do computador Princ´ıpios da mem´ oria cache Elementos de projeto da mem´ oria cache Elementos de projeto da mem´oria cache Mapeamento Associativo em Conjunto . Cada conjunto tem 2 linhas. Informa¸c˜ oes para mapeamento Tamanho de endere¸co = (10) bits (s+w) N´ umero de unidades endere¸c´aveis = 210 bytes Tamanho do bloco e da linha = 4 ou 22 bytes (w = 2) N´ umero de blocos na mem´ oria principal = 28 blocos (s = 8) N´ umero de linhas na cache = 24 linhas (r=4) N´ umero de linhas no conjunto = 2 Total de conjuntos = 2d Nro.

Exerc´ıcio 4 Mem´oria com 4GB e endere¸cada por byte Cache com 1 MB Em cada bloco da mem´ oria e linha de cache se tem 128 bytes Determine a quantidade de bits para palavra.Vis˜ ao geral do sistema de mem´ oria do computador Princ´ıpios da mem´ oria cache Elementos de projeto da mem´ oria cache Elementos de projeto da mem´oria cache Mapeamento em conjunto associativo 4 . conjunto e tag .

Vis˜
ao geral do sistema de mem´
oria do computador

Princ´ıpios da mem´
oria cache

Elementos de projeto da mem´oria cache
Mapeamento Associativo em Conjunto (Set Associtative)

Elementos de projeto da mem´
oria cache

Vis˜
ao geral do sistema de mem´
oria do computador

Princ´ıpios da mem´
oria cache

Elementos de projeto da mem´
oria cache

Elementos de projeto da mem´oria cache
Desempenho de cache pelo pelo tamanho do conjunto (Set-Associative)

Vis˜
ao geral do sistema de mem´
oria do computador

Princ´ıpios da mem´
oria cache

Elementos de projeto da mem´
oria cache

Elementos de projeto da mem´oria cache
Diferen¸cas de desempenho

Significativo at´e pelo menos 64 KB para 2 linhas.
Diferen¸ca entre 2 e 4 linhas em 4 KB muito menor que 4 KB
para 8 KB.
Complexidade da cache aumenta com a associatividade.
N˜ao justificado contra aumento da cache para 8kB ou 16kB.
Acima de 32 KB n˜ao gera melhoria. (resultados de simula¸c˜ao)

Determine se ocorreria um cache miss ou um cache hit para uma requisi¸c˜ao de leitura dos endere¸cos abaixo. Caso ocorra um cache hit.Vis˜ ao geral do sistema de mem´ oria do computador Princ´ıpios da mem´ oria cache Elementos de projeto da mem´ oria cache Elementos de projeto da mem´oria cache Exerc´ıcio Neste exerc´ıcio considere uma cache de capacidade de 64 bytes que utiliza associativo em conjunto de 2 linhas e que tem em cada linha 8 bytes e uma mem´ oria de 64 KB. qual seria o dado 266(100001010) e 45 (101101) Conjunto 0 1 2 3 TAG 13 3 3 8 9 12 34 12 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 Bytes da linha 2 3 4 5 2 3 4 5 2 3 4 5 2 3 4 5 2 3 4 5 2 3 4 5 2 3 4 5 2 3 4 5 2 3 4 5 6 6 6 6 6 6 6 6 6 7 7 7 7 7 7 7 7 7 .

uma das linhas deve ser substitu´ıda quando um novo bloco de informa¸c˜ao for trazida da mem´oria Mapeamento direto n˜ao oferece diversas possibilidades.Vis˜ ao geral do sistema de mem´ oria do computador Princ´ıpios da mem´ oria cache Elementos de projeto da mem´ oria cache Elementos de projeto da mem´oria cache Algoritmos de substitui¸c˜ ao Quando a cache fica ”cheia”. visto que apenas uma posi¸c˜ao ´e poss´ıvel Por´em para o mapeamento associativo e conjunto associativo ´e necess´ario estabelecer politicas de substitui¸c˜ao Estas politicas devem estar implementadas em hardware .

Contador para cada linha 4 Aleat´ oria: Estudo mostram que ´e apenas ligeiramente inferior aos algoritmos baseado no uso . Linhas recentemente acessadas ficam na frente da lista. First-out) Substitui o bloco no conjunto que esteve na cache por mais tempo Buffer circular 3 LFU (Least Frequently Used) Substitua o bloco no conjunto que teve menos referˆencias.Vis˜ ao geral do sistema de mem´ oria do computador Princ´ıpios da mem´ oria cache Elementos de projeto da mem´ oria cache Elementos de projeto da mem´oria cache Algoritmos de substitui¸c˜ ao 1 LRU (Last Recently Used): Substitui aquele bloco no conjunto que permaneceu na cache por mais tempo sem qualquer referˆencia a ele. Mais popular. Associativo 2-way : bit USE (1 utilizado recentemente e 0 caso contr´ario) Associativo completo: Lista separada de ´ındices para todas as linhas na cache. 2 FIFO (First-In.

E/S pode endere¸car mem´ oria principal diretamente.Vis˜ ao geral do sistema de mem´ oria do computador Princ´ıpios da mem´ oria cache Elementos de projeto da mem´ oria cache Elementos de projeto da mem´oria cache Pol´ıtica de escrita N˜ao deve sobrescrever bloco de cache a menos que a mem´oria principal esteja atualizada. M´ ultiplas CPUs podem ter caches individuais. Pol´ıtica Write-through T´ecnica mais simples Todas as opera¸c˜ oes de escrita s˜ao feitas na cache e na mem´ oria principal Garante que em todos os n´ıveis a informa¸c˜ oes esteja consistente Qualquer outro processador-cache pode manter seus dados consistentes monitorando a mem´ oria principal Desvantagem: tr´afego de mem´ oria consider´avel que pode tornar-se um gargalo do sistema . 1.

ele ´e escrito de volta na mem´ oria principal se o bit de modifica¸c˜ ao estiver ativo Desvantagem: Partes da mem´ oria ficam inv´alidas e isto bloqueia o acesso de outros dispositivos de entrada e sa´ıda. ativa-se um bit de modifica¸c˜ ao associado a linha Quando o bloco ´e substitu´ıdo. com atualiza¸c˜oes apenas na mem´ oria cache Quando ocorre uma escrita.Vis˜ ao geral do sistema de mem´ oria do computador Princ´ıpios da mem´ oria cache Elementos de projeto da mem´ oria cache Elementos de projeto da mem´oria cache Pol´ıtica de escrita 2. A cache ir´a liberar o acesso aos dispositivos de E/S . Write-back Minimiza escritas na mem´ oria principal.

Vis˜ ao geral do sistema de mem´ oria do computador Princ´ıpios da mem´ oria cache Elementos de projeto da mem´ oria cache Elementos de projeto da mem´oria cache Pol´ıtica de escrita .Tratamento de problemas em m´ ultiplos processadores com cache 1 Observa¸c˜ ao de barramento com write-through cada controlador monitora as linhas de barramento para detectar opera¸c˜ oes de escrita escrita de outros mestres invalidam c´ opia local 2 Transparˆ encia de hardware Hardware extra que garante que as atualiza¸c˜oes de uma cache na mem´ oria principal s˜ao refletidas nas demais caches 3 Mem´ oria n˜ ao cacheavel Uma parte da mem´ oria principal compartilhada mantida fora das linhas de cache Acessos aos endere¸cos compartilhados sempre ocasional cache miss .

Nenhum valor ideal definitivo foi descoberto. Raz˜ao de acerto diminuir´a `a medida que o bloco se tornar ainda maior. mas tamb´em uma s´erie de palavras adjacentes. Tamanho de bloco aumentado aumentar´a raz˜ao de acerto a princ´ıpio. Probabilidade de uso de informa¸c˜ oes rec´em buscadas torna-se menor que probabilidade de reutilizar informa¸c˜oes substitu´ıdas Blocos maiores: Reduzem n´ umero de blocos que cabem na cache. Dados sobrescritos pouco depois de serem buscados. 8 a 64 bytes parece ser razo´avel . O princ´ıpio da localidade.Vis˜ ao geral do sistema de mem´ oria do computador Princ´ıpios da mem´ oria cache Elementos de projeto da mem´ oria cache Elementos de projeto da mem´oria cache Tamanho da linha Recupere n˜ao apenas a palavra desejada.

Mais r´apido que acesso ao barramento. Libera barramento para outras transferˆencias. Acesso L2 muito mais r´apido que DRAM ou ROM. Resultando em cache L3. L2 fora do chip na RAM est´atica. . L2 normalmente usa caminho de dados separado. Comum usar cache dentro e fora do chip. L1 no chip. Acesso ao barramento agora no chip. L2 pode agora estar no chip.Vis˜ ao geral do sistema de mem´ oria do computador Princ´ıpios da mem´ oria cache Elementos de projeto da mem´ oria cache Elementos de projeto da mem´oria cache N´ umero de mem´ orias caches Alta densidade l´ogica permite caches no chip.

Equilibra carga entre buscas de instru¸c˜ao e dados. Vantagens da cache separada: Elimina disputa pela cache entre a unidade de busca/decodifica¸c˜ao de instru¸c˜ao e a unidade de execu¸c˜ao. uma para dados e uma para instru¸c˜ oes (Harvard) Vantagens da cache unificada: Maior taxa de acerto.Vis˜ ao geral do sistema de mem´ oria do computador Princ´ıpios da mem´ oria cache Elementos de projeto da mem´ oria cache Elementos de projeto da mem´oria cache Caches unificadas versus separadas Uma cache para dados e instru¸c˜ oes ou duas. Apenas uma cache para projetar e implementar. Importante no pipeline de instru¸c˜ oes (disputa entre unidade de busca e unidade de execu¸c˜ao) Maior tendˆencia de utiliza¸c˜ao nas CPU recentes .