Prévia do material em texto
MEMÓRIA CACHE Carlos Mágno CAMPUS GARANHUNS 1 Roteiro Motivação; Princípio da Localidade; Princípios da Cache; Funcionamento; Níveis de Cache; Operação de Leitura; Memória Cache vs. Memória Principal; Tipos de Mapeamento; Algoritmos de Substituição; Políticas de Escrita; Cache nos processadores atuais; Exercícios de Fixação. 23/05/2018 Aula: Memória Cache - Carlos Mágno 2 2 Motivação Evolução dos Sistemas Computacionais Memória RAM x Processador; Exemplo (computador hipotético): Realizar uma soma, e ir buscar os operando na memória gasta de 60 ns e para o processador obter o resultado 0,3 ns. 23/05/2018 Aula: Memória Cache - Carlos Mágno 3 HENNESY, 2009 3 Princípio da Localidade (Denning, 1968) Apenas uma parte relativamente pequena do espaço de endereçamento dos programas é acessada em um instante qualquer: Localidade Espacial Se um item é referenciado, itens cujos endereços sejam próximos ao dele tendem a ser logo referenciados Localidade Temporal Um item referenciado tende a ser referenciado novamente dentro de um espaço de tempo curto 23/05/2018 Aula: Memória Cache - Carlos Mágno 4 Espacial: A organização do código executável em memória. A existência de estruturas de dados na forma de coleções de itens. Temporal: A existência de variáveis que são lidas/modificadas frequentemente em uma mesma região do código. ▶ A existência de repetições com variáveis acumuladoras. ▶ A existência de repetições que executam as mesmas instruções várias vezes seguidas 4 Princípios da Cache O termo cache é usado em vários contextos em computação: Cache de um browser; Cache de arquivos em memória; Memória cache. Em todos estes contextos, a ideia é armazenar informações de interesse em um local de acesso mais rápido. É impossível armazenar tudo. Mas se algo é encontrado na cache, ganhamos em desempenho. Note que a consulta à cache consome algum tempo. Mas supõe-se que esse tempo é pequeno em relação ao ganho que ocorre quando achamos o dado. 23/05/2018 Aula: Memória Cache - Carlos Mágno 5 5 Princípios da cache Cada local de cache pode armazenar o conteúdo de diversos locais de memória diferentes: Como saber se dados correspondem a uma palavra requisitada? Tags (rótulos) incluídos: Campo que contém informações necessárias para identificar bloco Contém parte superior do endereço Precisamos reconhecer se bloco possui informações válidas Bit de validade Indica se bloco contém dados válidos 23/05/2018 Aula: Memória Cache - Carlos Mágno 6 6 Princípios de cache 23/05/2018 Aula: Memória Cache - Carlos Mágno 7 Índice V Tag Dados 000 N 001 N 010 N 011 N 100 N 101 N 110 N 111 N 7 Funcionamento Memória cache, que serve como um reservatório temporário de dados e instruções com grande possibilidade de serem usados pelo processador; Visa Diminuir o gargalo de velocidade existente entre processador e memória principal; A memória cache explora o princípio da localidade. Temporal e espacial. Ela é uma memória relativamente pequena, mas bastante rápida. Toda vez que o processador tenta acessar uma posição de memória, ele primeiro verifica a existência do dado na cache. Quando um dado é acessado na MP, ele é armazenado na cache. 23/05/2018 Aula: Memória Cache - Carlos Mágno 8 8 Funcionamento 23/05/2018 Aula: Memória Cache - Carlos Mágno 9 Stallings,2002 Esquema de uma memória cache 9 Funcionamento 23/05/2018 Aula: Memória Cache - Carlos Mágno 10 Funcionamento da cache Stallings,2002 10 Níveis de Cache L1 – Level 1 (nível 1) Dentro do processador Mesma velocidade do processador L2 – Level 2 (nível 2) Dentro do invólucro, fora do chip Metade da velocidade do processador L3 – Level 3 (nível 3) Cache externa, situada na placa mãe 23/05/2018 Aula: Memória Cache - Carlos Mágno 11 O cache começou a ser usado na época do 386, onde o cache era opcional e fazia parte da placa-mãe. Ao lançar o 486, a Intel integrou um cache de 8 KB 11 Caches de Dados e Instruções 23/05/2018 Aula: Memória Cache - Carlos Mágno 12 A cache L1 é geralmente dividida em cache de dados e cache de instruções: processamento mais rápido 12 Cache Multinível 23/05/2018 Aula: Memória Cache - Carlos Mágno 13 [Stallings, 2010] 5.4.10 – Caches Unificadas / Separadas • Embora, em sua origem, a memória cache tenha seguido o padrão von Neumann de conter indiscriminadamente dados e instruções, tem havido, nos últimos tempos, propostas num sentido “Harvard” de separar módulos de cache associados a instruções e dados. Por exemplo, pode-se separar o nível L1 num nível L1 de instruções e num nível L1 de dados. • Algumas vantagens do esquema unificado são: a) uma cache unificada tende a ter maior taxa de acerto, pois equilibra naturalmente a demanda do processador e explora ambos os tipos de localidade; b) simplicidade de projeto. • Por outro lado, há uma tendência em usar caches separadas, especialmente para máquinas superescalares como o Pentium e o Power PC [Stallings, 2010]. Isso desmembra a demanda relativa à busca / decodificação e aquela relativa à instrução, o que pode impactar num aumento da capacidade de exploração de paralelismo (e.g. num pipeline de instruções). 13 Cache Multicore 23/05/2018 Aula: Memória Cache - Carlos Mágno 14 14 Cache Multicore 23/05/2018 Aula: Memória Cache - Carlos Mágno 15 15 Cache Multicore 23/05/2018 Aula: Memória Cache - Carlos Mágno 16 16 Operação de Leitura A existência da memória cache altera o processo de leitura de dados da MP. Quando a UCP deseja ler uma posição de memória, os seguintes eventos ocorrem: Processador escreve o endereço a ser lido no BE de acesso à MP. Controlador da cache intercepta pedido e verifica se o dado está em cache. Se sim, temos um acerto (hit): dado é copiado para o processador. Se não, temos um falta (miss): cache pede o dado à MP, o armazena e repassa para a UCP. Note que, no caso de um miss, cache solicita um bloco inteiro à MP. Conjunto de dados maior que o dado a ser lido. 23/05/2018 Aula: Memória Cache - Carlos Mágno 17 Acerto: Informação solicitada pelo processador encontra-se no nível superior Taxa de acerto: fração de acessos com acerto Falta: Informação solicitada pelo processador não se encontrada no nível superior Nível inferior acessado em busca do bloco. Taxa de faltas = (1 – taxa de acerto) 17 Operação de Leitura – (Miss) Os Três Cs: Falhas Compulsórias: São faltas no acesso à cache, causadas pelo primeiro acesso que nunca esteve na cache. Falhas devido à Capacidade: São faltas que ocorrem porque a cache não pode armazenar todos os blocos necessários à execução de um programa. Falhas por Conflitos ou Colisão: São faltas que ocorrem no acesso à cache quando diversos blocos competem pelo mesmo conjunto. Não ocorrem em caches totalmente associativas. 23/05/2018 Aula: Memória Cache - Carlos Mágno 18 Acerto: Informação solicitada pelo processador encontra-se no nível superior Taxa de acerto: fração de acessos com acerto Falta: Informação solicitada pelo processador não se encontrada no nível superior Nível inferior acessado em busca do bloco. Taxa de faltas = (1 – taxa de acerto) 18 Memória Cache vs. Memória Principal A memória cache é muito menor que a MP. Não podemos guardar todos o conteúdo da MP na cache. Em outras palavras, só podemos armazenar um subconjunto dos blocos da MP. Por isso, algumas questões fundamentais: Quais blocos manter na cache? Como determinar se um dado está em cache de forma eficiente? O que fazer quando um dado em cache é alterado? 23/05/2018 Aula: Memória Cache - Carlos Mágno 19 19 Memória Cache vs. Memória Principal A memória cache é muito menor que a MP. Não podemos guardar todos o conteúdo da MP na cache. Em outras palavras, só podemos armazenar um subconjunto dos blocos da MP. Por isso, algumas questões fundamentais: Quais blocos manter na cache? Como determinar se um dado está em cache de forma eficiente? O que fazer quando um dadoem cache é alterado? 23/05/2018 Aula: Memória Cache - Carlos Mágno 20 20 Tipos de Mapeamento A função de mapeamento determina como a cache é preenchida, podendo ser: Direto: cada bloco da memória principal é mapeado para apenas uma linha de cache; 23/05/2018 Aula: Memória Cache - Carlos Mágno 21 Xavier, 2011 21 Tipos de Mapeamento Mapeamento direto: 23/05/2018 Aula: Memória Cache - Carlos Mágno 22 Xavier, 2011 Pode ocorrer substituições de blocos, enquanto outros ficam ociosos. 22 Tipos de Mapeamento A função de mapeamento determina como a cache é preenchida, podendo ser: Direto: cada bloco da memória principal é mapeado para apenas uma linha de cache; Associativo: um bloco pode ser alocado em qualquer linha da cache; 23/05/2018 Aula: Memória Cache - Carlos Mágno 23 Xavier, 2011 23 Tipos de Mapeamento Mapeamento Associativo: 23/05/2018 Aula: Memória Cache - Carlos Mágno 24 Xavier, 2011 Requer memória associativa entre todos os endereços para realizar a busca na cache (alto custo). 24 Tipos de Mapeamento A função de mapeamento determina como a cache é preenchida, podendo ser: Direto: cada bloco da memória principal é mapeado para apenas uma linha de cache; Associativo: um bloco pode ser alocado em qualquer linha da cache; Associativo por conjunto: a cache é dividida em conjuntos, com certo número de linhas cada e um bloco pode estar associado a qualquer linha de um conjunto já pré-determinado. 23/05/2018 Aula: Memória Cache - Carlos Mágno 25 Xavier, 2011 25 Tipos de Mapeamento Mapeamento Associativo por Conjunto 23/05/2018 Aula: Memória Cache - Carlos Mágno 26 Xavier, 2011 Requer memória Associativa somente dentro de cada bloco; Melhor utilização dos blocos. 26 Vantagem e Desvantagens TIPO DE MAPEAMENTO VANTAGEM DESVANTAGEM Direto Simples e de baixo custo. Fixação da localização para os blocos; Fenômeno thrashing. Associativo flexibilizar a alocação de blocos em linhas da cache. maior complexidade do circuito da cache. Associativo por Conjunto Meio termo: Usa o mapeamento direto, onde cada bloco da MP tem um mapeamento fixo para um conjunto específico. Mas dentro do seu conjunto, o bloco pode ser armazenado em qualquer linha, como no mapeamento associativo. 23/05/2018 Aula: Memória Cache - Carlos Mágno 27 Direto: O mapeamento direto é de fácil implementação. ▶ Principalmente se X e L forem potências de 2. ⋆ Basta olhar para conjuntos de bits do endereço para determinar se o dado está em cache. Mas ele traz uma potencial ineficiência: ▶ Blocos são sempre colocados na mesma linha. ▶ Se acessamos sucessivamente endereços de blocos diferentes mapeados para a mesma linha, sempre haverá cache miss. Associativo O grande benefício do mapeamento associativo é flexibilizar a alocação de blocos em linhas da cache. ▶ Podemos ter blocos em quaisquer linhas. ▶ O que tende a aumentar a taxa de cache hit. Como desvantagem, temos a maior complexidade do circuito da cache. ▶ Principalmente em termos econômicos. ▶ Cache associativa é mais cara que a cache com mapeamento direto. ▶ Principalmente para caches grandes. 27 Exemplo – Mapeamento Consideremos: Memória principal: 32 bits Cache de 4 blocos >> 2N >> n sendo o número de blocos, então n = bits de index Sequencia desejada de endereços: [0;5;4;9;7;4;0;9;0;7] 23/05/2018 Aula: Memória Cache - Carlos Mágno 28 28 Mapeamento Direto 23/05/2018 Aula: Memória Cache - Carlos Mágno 29 Endereço do Bloco Bloco da Cache 0 (0 modulo 4) = 0 5 (5 modulo 4) = 1 4 (4 modulo 4) = 0 9 (9 modulo 4) = 1 7 (7 modulo 4) = 3 Endereço do bloco de memória acessado Hit ou Miss Conteúdo dos blocos de cache após referência Bloco 0 Bloco 1 Bloco 2 Bloco 3 0 Miss Memory[0] 5 Miss Memory[0] Memory[5] 4 Miss Memory[4] Memory[5] 9 Miss Memory[4] Memory[9] 7 Miss Memory[4] Memory[9] Memory[7] 4 Hit Memory[4] Memory[9] Memory[7] 0 Miss Memory[0] Memory[9] Memory[7] 9 Hit Memory[0] Memory[9] Memory[7] 0 Hit Memory[0] Memory[9] Memory[7] 7 Hit Memory[0] Memory[9] Memory[7] 29 Mapeamento Direto 23/05/2018 Aula: Memória Cache - Carlos Mágno 30 Endereço do Bloco Bloco da Cache 0 (0 modulo 4) = 0 5 (5 modulo 4) = 1 4 (4 modulo 4) = 0 9 (9 modulo 4) = 1 7 (7 modulo 4) = 3 Endereço do bloco de memória acessado Hit ou Miss Conteúdo dos blocos de cache após referência Bloco 0 Bloco 1 Bloco 2 Bloco 3 0 Miss Memory[0] 5 Miss Memory[0] Memory[5] 4 Miss Memory[4] Memory[5] 9 Miss Memory[4] Memory[9] 7 Miss Memory[4] Memory[9] Memory[7] 4 Hit Memory[4] Memory[9] Memory[7] 0 Miss Memory[0] Memory[9] Memory[7] 9 Hit Memory[0] Memory[9] Memory[7] 0 Hit Memory[0] Memory[9] Memory[7] 7 Hit Memory[0] Memory[9] Memory[7] Taxa Hit = 4/10 = 40% 30 Mapeamento Associativo por 2 Conjuntos 23/05/2018 Aula: Memória Cache - Carlos Mágno 31 Endereço do Bloco Bloco da Cache 0 (0 modulo 2) = 0 5 (5 modulo 2) = 1 4 (4 modulo 2) = 0 9 (9 modulo 2) = 1 7 (7 modulo 2) = 1 Endereço do bloco de memória acessado Hit ou Miss Conteúdo dos blocos de cache após referência Conj 0 Conj 0 Conj 1 Conj 1 0 Miss Memory[0] 5 Miss Memory[0] Memory[5] 4 Miss Memory[0] Memory[4] Memory[5] 9 Miss Memory[0] Memory[4] Memory[5] Memory[9] 7 Miss Memory[0] Memory[4] Memory[7] Memory[9] 4 Hit Memory[0] Memory[4] Memory[7] Memory[9] 0 Hit Memory[0] Memory[4] Memory[7] Memory[9] 9 Hit Memory[0] Memory[4] Memory[7] Memory[9] 0 Hit Memory[0] Memory[4] Memory[7] Memory[9] 7 Hit Memory[0] Memory[4] Memory[7] Memory[9] 31 Mapeamento Associativo por 2 Conjuntos 23/05/2018 Aula: Memória Cache - Carlos Mágno 32 Taxa Hit = 5/10 = 50% Endereço do Bloco Bloco da Cache 0 (0 modulo 2) = 0 5 (5 modulo 2) = 1 4 (4 modulo 2) = 0 9 (9 modulo 2) = 1 7 (7 modulo 2) = 1 Endereço do bloco de memória acessado Hit ou Miss Conteúdo dos blocos de cache após referência Conj 0 Conj 0 Conj 1 Conj 1 0 Miss Memory[0] 5 Miss Memory[0] Memory[5] 4 Miss Memory[0] Memory[4] Memory[5] 9 Miss Memory[0] Memory[4] Memory[5] Memory[9] 7 Miss Memory[0] Memory[4] Memory[7] Memory[9] 4 Hit Memory[0] Memory[4] Memory[7] Memory[9] 0 Hit Memory[0] Memory[4] Memory[7] Memory[9] 9 Hit Memory[0] Memory[4] Memory[7] Memory[9] 0 Hit Memory[0] Memory[4] Memory[7] Memory[9] 7 Hit Memory[0] Memory[4] Memory[7] Memory[9] 32 Mapeamento Associativo 23/05/2018 Aula: Memória Cache - Carlos Mágno 33 Endereço do bloco de memória acessado Hit ou Miss Conteúdo dos blocos de cache após referência Bloco 0 Bloco 1 Bloco 2 Bloco 3 0 Miss Memory[0] 5 Miss Memory[0] Memory[5] 4 Miss Memory[0] Memory[5] Memory[4] 9 Miss Memory[0] Memory[5] Memory[4] Memory[9] 7 Miss Memory[7] Memory[5] Memory[4] Memory[9] 4 Hit Memory[7] Memory[5] Memory[4] Memory[9] 0 Miss Memory[7] Memory[0] Memory[4] Memory[9] 9 Hit Memory[7] Memory[0] Memory[4] Memory[9] 0 Hit Memory[7] Memory[0] Memory[4] Memory[9] 7 Hit Memory[7] Memory[0] Memory[4] Memory[9] 33 Mapeamento Associativo 23/05/2018 Aula: Memória Cache - Carlos Mágno 34 Taxa Hit = 5/10 = 40% Endereço do bloco de memória acessado Hit ou Miss Conteúdo dos blocos de cache após referência Bloco 0 Bloco 1 Bloco 2 Bloco 3 0 Miss Memory[0] 5 Miss Memory[0] Memory[5] 4 Miss Memory[0] Memory[5] Memory[4] 9 Miss Memory[0] Memory[5] Memory[4] Memory[9] 7 Miss Memory[7] Memory[5] Memory[4] Memory[9] 4 Hit Memory[7] Memory[5] Memory[4] Memory[9] 0 Miss Memory[7] Memory[0] Memory[4] Memory[9] 9 Hit Memory[7] Memory[0] Memory[4] Memory[9] 0 Hit Memory[7] Memory[0] Memory[4] Memory[9] 7 Hit Memory[7] Memory[0] Memory[4] Memory[9] 34 Memória Cache vs. Memória Principal A memória cache é muito menor que a MP. Não podemos guardar todos o conteúdo da MP na cache. Em outras palavras, só podemos armazenar um subconjunto dos blocos da MP. Por isso, algumas questões fundamentais: Quais blocos manter na cache? Como determinarse um dado está em cache de forma eficiente? O que fazer quando um dado em cache é alterado? 23/05/2018 Aula: Memória Cache - Carlos Mágno 35 35 Problema da substituição dos dados Cache cheia, novo bloco pode ser trazido para a cache, um dos blocos existes precisa ser substituído. Mapeamento direto: existe apenas uma linha possível para qualquer bloco em particular e nenhuma escolha é possível. Mapeamento associativos e associativa em conjunto: necessário algoritmo de substituição. 23/05/2018 Aula: Memória Cache - Carlos Mágno 36 36 Problema da substituição dos dados Algoritmos de Substituição Algoritmo em hardware: alta velocidade de substituição. Algoritmos mais comuns: LRU (Least Recently Used); FIFO (First-In-First-Out); LFU (Least Frequently Used); Escolher uma linha aleatória dentre as linhas candidatas. 23/05/2018 Aula: Memória Cache - Carlos Mágno 37 Escolha de entrada que será substituída em caso de falha. 1) Least Recently used (LRU): Complexa e custosa para hardware com alta associatividade. 2) Aleatório: resultados próximos a LRU, mais fácil de implementar Memória Virtual: aproximação de LRU com suporte de hardware. LRU (Least Recently Used): O controlador de cache escolhe o bloco que está há mais tempo sem ser utilizado pela CPU FIFO (First in first out): O controlador de cache escolhe o bloco que está armazenado há mais tempo na cache, independentemente de estar sendo usado ou não com freqüência pela CPU LFU (Least Frenquently Used): o controlador de cache escolhe o bloco que tem tido menos acessos (menos referências) por parte da CPU ▫ Escolha aleatória 37 Memória Cache vs. Memória Principal A memória cache é muito menor que a MP. Não podemos guardar todos o conteúdo da MP na cache. Em outras palavras, só podemos armazenar um subconjunto dos blocos da MP. Por isso, algumas questões fundamentais: Quais blocos manter na cache? Como determinar se um dado está em cache de forma eficiente? O que fazer quando um dado em cache é alterado? 23/05/2018 Aula: Memória Cache - Carlos Mágno 38 38 Problema da escrita dos dados 23/05/2018 Aula: Memória Cache - Carlos Mágno 39 Antes da execução da instrução: X = Y + Z 39 Problema da escrita dos dados 23/05/2018 Aula: Memória Cache - Carlos Mágno 40 Depois da execução da instrução: X = Y + Z 40 Problema da escrita dos dados 23/05/2018 Aula: Memória Cache - Carlos Mágno 41 41 Problema da escrita dos dados 23/05/2018 Aula: Memória Cache - Carlos Mágno 42 O bloco 4 (o valor de X) precisa ser atualizado na memória. Quando? Depende da política de escrita 42 Políticas de Escrita Write-throug: Todas as operações de escrita são realizadas na MP e na cache; Módulo processador-cache monitora o tráfego para a MP para manter a consistência dentro de sua própria cache; Desvantagem pois gera tráfego de memória considerável. Write-back: Minimiza escritas na memória; Atualizações são feitas apenas na cache; Utiliza um bit de modificação ou uso associado à linha é marcado; Um bloco é substituído na MP se o bit de modificação estiver marcado; Partes da MP podem ficar inválidas devidos aos acessos pelos módulos de E/S que devem ser permitidos pela cache. Exige circuitos complexos e gera um gargalo em potencial. 23/05/2018 Aula: Memória Cache - Carlos Mágno 43 Write-through: atualiza os vários níveis; simplifica substituição, buffer de escrita ajuda. Write-back: atualiza somente o nível mais próximo: atualiza o próximo nível quando o bloco for substituído. Precisa manter mais informações de estado. Memória virtual: somente write-back é viável dado o tempo de escrita em disco. Write Through Cada escrita em uma palavra da cache acarreta em uma escrita na palavra correspondente na MP, assegurando validade permanente e igual ao conteúdo de ambas as memórias. • Caso haja outras CPUs, estas alterarão também suas caches. Simples, mas não favorece o desempenho • Qualquer escrita faz com que a informação seja escrita também na memória principal ▫ Aumento do número de ciclos de clock • Buffer de escrita: ▫ Armazena o dado enquanto este aguarda sua escrita na memória ▫ Reduz o problema das escritas na mem. principal ▫ Buffer cheio – Processador parado em escritas Faltas de escrita: ▫ Processador simplesmente atualiza a memória principal, como antes ▫ Não ocorrem leituras da memória principal durante a escrita pelo processador Write Back • Quando ocorre uma escrita, o novo valor é escrito apenas no bloco da cache ▫ O bloco só será escrito na memória principal quando ele precisar ser substituído na cache • Pode melhorar muito o desempenho, porém é mais complexo que o write-through • Relaciona-se com a exploração da localidade espacial e desempenho • Em geral, a taxa de faltas cai com o aumento do tamanho do bloco Taxa de faltas pode crescer se o bloco representar uma fração considerável do tamanho da cache: ▫ Pequeno número de blocos -> Alta competição ▫ Blocos retirados da cache sem muita exploração 43 Cache nos processadores atuais AMD O AMD Athlon II X4 630 tem 2 MB de memória cache L2. O AMD Phenom II X4 965 tem 6 MB de memória cache L3; O AMD AMD Ryzen 7 1700X tem 16 MB de memória cache L3 INTEL Todos usam memória cache L3; Core I3 -> 3 ou 4MB. Core I5 -> 6MB; Core I7 -> 8MB; 23/05/2018 Aula: Memória Cache - Carlos Mágno 44 44 Cache nos processadores atuais 23/05/2018 Aula: Memória Cache - Carlos Mágno 45 45 Cache nos processadores atuais 23/05/2018 Aula: Memória Cache - Carlos Mágno 46 46 Exercício de Fixação 1. O que é a memória cache? Quais são seu objetivo e a ideia básica de seu funcionamento? 2. Qual é a influência da função de mapeamento no projeto da cache? Explique cada uma das técnicas de mapeamento que podem ser utilizadas, apresentando as vantagens e desvantagens, se existente. 3. Explique quais são os motivos que podem diminui a Taxa de acertos (hits) na operação de leitura da memória cache? 4. Quais as vantagens de se empregar uma cache da arquitetura de Harvard ou uma cache unificada? 23/05/2018 Aula: Memória Cache - Carlos Mágno 47 47 Exercício de Fixação 5. Considerando as mesmas configurações da memória principal e da memória cache apresentado na aula. Inverta a sequência propostas e encontre as novas taxas de HIT aplicando os mapeamento direto, associativo por conjunto e associativo. 23/05/2018 Aula: Memória Cache - Carlos Mágno 48 48 Exercício de Fixação - Resolução 1. O que é a memória cache? Quais são seu objetivo e a ideia básica de seu funcionamento? R) Tipo de memória de dados temporários que troca dados entre o Processador e Memória Principal. Tem o objetivo acelerar a execução das instruções do processador. Funcionar sendo acionada pelo processador em busca de dados, esta por sua vez, verifica se o dados encontra-se na Cache. Se sim, entrega o dado (gerando um HIT), ou não, nessa caso vai buscar um bloco de dados na memória Principal (gerando um Miss), entregando então, o dado ao processador e armazenando na cache. 23/05/2018 Aula: Memória Cache - Carlos Mágno 49 49 Exercício de Fixação - Resolução 2. Qual é a influência da função de mapeamento no projeto da cache? Explique cada uma das técnicas de mapeamento que podem ser utilizadas, apresentando as vantagens e desvantagens, se existente. R) Possui um importante função, porque é responsável por determinar como a cache será preenchida. Pode ser usado três tipos: Direto, Associativo e Associativo por Conjunto: O Mapeamento direto possui simples e baixo custo de implementação, porém, a desvantagem de fixar a localização dos blocos e podo ocasionar o fenômeno de Thrashing. O Mapeamento Associativo, resolver a questão da flexibilização da alocação de blocos em linhas de cache, porém, possui maior complexidade de do circuito da cache (ex. fator econômicos e caches grande). No Mapeamento Associativo por Conjunto consegue ter um meio termo ao usar o mapeamento direto, onde cada bloco da memória principal tem um mapeamento fixo. Mas, dentro do seu conjunto, o bloco pode serarmazenado em qualquer linha. 23/05/2018 Aula: Memória Cache - Carlos Mágno 50 50 Exercício de Fixação - Resolução 3. Explique quais são os motivos que podem diminui a Taxa de acertos (hits) na operação de leitura da memória cache? R) Os motivos são os de Falha Compulsória: Ocorro no acesso inicial à cache, porque não há dados armazenados no começo; Falha devido à capacidade: ocorrem porque a cache não pode armazenar todos os blocos necessários à execução de um programa; e Falha por conflito: que ocorrem no acesso à cache quando vários blocos competem pelo mesmo conjunto. 4. Quais as vantagens de se empregar uma cache da arquitetura de Harvard ou uma cache unificada? R) Na Cache unificada há os dados e instruções sendo executadas juntas, tendo maior taxa de acerto por equilibrar a demanda do processador e explorar ambos os tipos de localidade. Na cache, baseada na arquitetura de Harvard, há uma tendência em usar as caches separadas em máquinas superescalares. Com a vantagem de aumentar a capacidade de exploração do paralelismo (Ex. em um pipeline de inscruções). 23/05/2018 Aula: Memória Cache - Carlos Mágno 51 51 Exercício de Fixação 5. R) Mapeamento Direto 23/05/2018 Aula: Memória Cache - Carlos Mágno 52 Endereço do bloco de memória acessado Hit ou Miss Conteúdo dos blocos de cache após referência 0 1 2 3 7 Miss Memory[7] 0 Miss Memory[0] Memory[7] 9 Miss Memory[0] Memory[9] Memory[7] 0 Hit Memory[0] Memory[9] Memory[7] 4 Miss Memory[4] Memory[9] Memory[7] 7 Hit Memory[4] Memory[9] Memory[7] 9 Hit Memory[4] Memory[9] Memory[7] 4 Hit Memory[4] Memory[9] Memory[7] 5 Miss Memory[4] Memory[5] Memory[7] 0 Miss Memory[0] Memory[5] Memory[7] Taxa acerto = 4/10 = 40% 52 Exercício de Fixação 5. R) Mapeamento Associativo por 2 Conjuntos 23/05/2018 Aula: Memória Cache - Carlos Mágno 53 Endereço do bloco de memória acessado Hit ou Miss Conteúdo dos blocos de cache após referência Conj 0 Conj 0 Conj 1 Conj 1 7 Miss Memory[7] 0 Miss Memory[0] Memory[7] 9 Miss Memory[0] Memory[7] Memory[9] 0 Hit Memory[0] Memory[7] Memory[9] 4 Miss Memory[0] Memory[4] Memory[7] Memory[9] 7 Hit Memory[0] Memory[4] Memory[7] Memory[9] 9 Hit Memory[0] Memory[4] Memory[7] Memory[9] 4 Hit Memory[0] Memory[4] Memory[7] Memory[9] 5 Miss Memory[0] Memory[4] Memory[5] Memory[9] 0 Hit Memory[0] Memory[4] Memory[5] Memory[9] Taxa acerto = 5/10 = 50% 53 Exercício de Fixação 5. R) Mapeamento Associativo 23/05/2018 Aula: Memória Cache - Carlos Mágno 54 Endereço do bloco de memória acessado Hit ou Miss Conteúdo dos blocos de cache após referência Bloco 0 Bloco 1 Bloco 2 Bloco 3 7 Miss Memory[7] 0 Miss Memory[7] Memory[0] 9 Miss Memory[7] Memory[0] Memory[9] 0 Hit Memory[7] Memory[0] Memory[9] 4 Miss Memory[7] Memory[0] Memory[9] Memory[4] 7 Hit Memory[7] Memory[0] Memory[9] Memory[4] 9 Hit Memory[7] Memory[0] Memory[9] Memory[4] 4 Hit Memory[7] Memory[0] Memory[9] Memory[4] 5 Miss Memory[5] Memory[0] Memory[9] Memory[4] 0 Hit Memory[5] Memory[0] Memory[9] Memory[4] Taxa acerto = 5/10 = 50% 54 Exercício de Fixação 5. Considerando as mesmas configurações da memória principal e da memória cache apresentado na aula. Inverta a sequência propostas e encontre as novas taxas de HIT aplicando os mapeamento direto, associativo por conjunto e associativo. 23/05/2018 Aula: Memória Cache - Carlos Mágno 55 55 Atividade complementar para a próxima aula 1. Solicitação de uma pesquisa que compare as configurações de três computadores considerando o custo/benefício das memórias caches. 2. Aplique e obtenhas as taxa de acerto do exemplo do exercício de número 5, aplicando os três diferentes algoritmos de substituição, LRU, FIFO e LFU. 23/05/2018 Aula: Memória Cache - Carlos Mágno 56 56 Referências Bibliografia Básica David A Patterson & John L. Hennessy. A Interface Hardware/Software. Campus, 4ª Edição, 2013. William Stallings. “Organização e Arquitetura de Computadores”, 5ª Edição, Pearson Prentice Hall, 2002. Bibliografia Complementar Xavier, M. A. S. Rodrigues, J. C., Júnior O. A. L. Simuladores de Memória Cache, um Estudo Comparativo Direcionado ao Ensino. Workshop sobre Educação em Arquitetura de Computadores WEAC. 2011. 23/05/2018 Aula: Memória Cache - Carlos Mágno 57 57 image1.png image2.png image3.png image4.png image5.png image6.png image7.png image8.png image9.png image10.png image11.jpeg image12.png image13.png image14.png image15.png image16.png image17.png image18.png image19.png image20.png image21.png image22.png image23.png image24.png