Aula 13: Memória Cache

Tamanho: px
Começar a partir da página:

Download "Aula 13: Memória Cache"

Transcrição

1 Aula 13: Memória Cache Diego Passos Universidade Federal Fluminense Fundamentos de Arquiteturas de Computadores Diego Passos (UFF) Memória: Memória Cache FAC 1 / 53

2 Memória Cache Diego Passos (UFF) Memória: Memória Cache FAC 2 / 53

3 Motivação: Diferença de Velocidade Processador precisa ler e escrever dados na memória principal Mas, tipicamente, o processador é muito mais rápido que a MP Exemplo (em um computador hipotético): Em uma soma, tempo de leitura dos operandos a partir da memória de 60 ns Uma vez nos registradores, o tempo efetivo de soma é 0,3 ns Processador precisa aguardar enquanto dados são carregados Tempo chamado de wait state Diego Passos (UFF) Memória: Memória Cache FAC 3 / 53

4 Motivação: Princípio da Localidade Na década de 1960, pesquisadores começaram a estudar a execução de programas Especialmente, os padrões de acesso à memória Notaram que o acesso à memória não é totalmente aleatório Quando um determinado endereço é acessado, há maior probabilidade de acesso à endereços próximos Princípio da Localidade Em inglês, chamado de locality of reference ou principle of locality Foram notados dois tipos de localidade distintos: A localidade espacial E a localidade temporal Diego Passos (UFF) Memória: Memória Cache FAC 4 / 53

5 Motivação: Localidade Espacial Princípio da localidade espacial: Se um endereço x é acessado, é provável que endereços x + 1, x + 2, x + 3, também sejam em um futuro próximo Este princípio se aplica à execução de programas por dois motivos principais: 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 Diego Passos (UFF) Memória: Memória Cache FAC 5 / 53

6 Motivação: Localidade Espacial (II) MP Organização do código executável: Instruções são ordenadas sequencialmente Leia um operando da memória Leia outro operando da memória Some os dois valores Processador busca instruções uma após a outra na memória Exceções: Repetições, condicionais e chamadas de funções Parte 1 do Programa A{ Outro Programa Call sub-rotina 1 Executado em Sequência Parte 2 Loop 1 Loop 2 Sub-rotina 1 Diego Passos (UFF) Memória: Memória Cache FAC 6 / 53

7 Motivação: Localidade Espacial (III) MP Outras Variáveis Coleções: Exemplo mais comum são os vetores Elementos tipicamente organizados sequencialmente É comum percorrer os elementos nesta sequência eg, em repetições a[0] a[1] a[2] a[3] Diego Passos (UFF) Memória: Memória Cache FAC 7 / 53

8 Motivação: Localidade Temporal Princípio da localidade temporal: Se um endereço x é acessado, é provável que ele seja acessado novamente num futuro próximo Este princípio se aplica à execução de programas por três motivos principais: 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 int a, b, c; a = 0; b = alguma_funcao(c); if (b < 3) a = c % 10; if (a > 1) a--; a = outra_funcao(a); int a[10], b = 0, i; for (i = 0; i < 10; i++) a[i] = i; for (i = 1; i < 10; i++) b += a[i-1] * i + a[i]; Diego Passos (UFF) Memória: Memória Cache FAC 8 / 53

9 Motivação: O Princípio 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 Diego Passos (UFF) Memória: Memória Cache FAC 9 / 53

10 Funcionamento da Memória Cache A memória cache explora o princípio da localidade Tanto temporal, quanto 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 Princípio da localidade temporal: ele poderá ser usado novamente em breve Além do dado em si, armazena-se um bloco de dados próximos Princípio da localidade espacial: dados próximos podem ser usados em breve Diego Passos (UFF) Memória: Memória Cache FAC 10 / 53

11 Operação de Leitura com Memória Cache 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 Diego Passos (UFF) Memória: Memória Cache FAC 11 / 53

12 Arquitetura com Memória Cache Possível arquitetura com a presença da memória cache Processador MP BE BE BD Cache BD BC BC Diego Passos (UFF) Memória: Memória Cache FAC 12 / 53

13 Desempenho com Memória Cache O objetivo de inserirmos a memória cache na hierarquia é reduzir o tempo de acesso à memória O objetivo é alcançado? Isso depende de vários fatores: O tempo de acesso quando há um hit O tempo de acesso quando há um miss E a eficiência da cache Define-se a eficiência de uma memória cache como o percentual de hits: E c = 100 hits acessos Eficiência varia com uma série de fatores, incluindo o programa em execução Mas espera-se algo em torno de 95% a 98% Diego Passos (UFF) Memória: Memória Cache FAC 13 / 53

14 Estrutura de uma Memória Cache Cache Memória Principal Linha 0 Linha 1 Linha 2 Linha 3 Linha 4 Linha 5 Tag Dados { Célula 0 Célula 1 Célula X M bits } Bloco de X Células Linha (n-1) Linha n A memória cache é organizada em linhas Cada linha contém X células E um campo tag Diego Passos (UFF) Memória: Memória Cache FAC 14 / 53

15 Estrutura de uma Memória Cache Cache Memória Principal Linha 0 Linha 1 Linha 2 Linha 3 Linha 4 Linha 5 Tag Dados { Célula 0 Célula 1 Célula X M bits } Bloco de X Células Linha (n-1) Linha n Células em uma linha representam células sequenciais na MP Um bloco Quando um dado é copiado da MP para a cache, todo o seu bloco é trazido juntamente Diego Passos (UFF) Memória: Memória Cache FAC 14 / 53

16 Estrutura de uma Memória Cache Cache Memória Principal Linha 0 Linha 1 Linha 2 Linha 3 Linha 4 Linha 5 Tag Dados { Célula 0 Célula 1 Célula X M bits } Bloco de X Células Linha (n-1) Linha n Há ainda o campo tag Indica, de alguma forma, o endereço do bloco na MP Lembre-se: a MP é muito maior que a cache Diego Passos (UFF) Memória: Memória Cache FAC 14 / 53

17 Memória Cache vs MP 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? Diego Passos (UFF) Memória: Memória Cache FAC 15 / 53

18 O Problema do Mapeamento Diego Passos (UFF) Memória: Memória Cache FAC 16 / 53

19 O Problema do Mapeamento Vamos começar pela segunda questão: Como determinar se um dado está em cache? Como a cache guarda um subconjunto pequeno dos blocos da MP, a primeira tarefa é determinar se o dado está na cache Sabemos que o campo tag é usado para, de alguma forma, indicar o campo de endereço do bloco na MP Busca tem que ser eficiente Caso contrário, tempo de acesso à cache fica alto Diego Passos (UFF) Memória: Memória Cache FAC 17 / 53

20 Uma Primeira Ideia Se usarmos o campo tag para armazenar o endereço na MP da primeira célula do bloco, podemos fazer uma busca sequencial: Começamos pela primeira linha da cache Verificamos se o endereço a ser acessado é maior ou igual a tag e menor que tag + X Se sim, achamos o dado Se não, continuamos na próxima linha Se não há mais linhas, dado não está na cache Algum problema? Diego Passos (UFF) Memória: Memória Cache FAC 18 / 53

21 Uma Primeira Ideia (II) Sim! Por mais que o acesso à memória cache seja rápido, temos (potencialmente) que ler todas as tags para um único acesso a memória Caches pequenas hoje têm centenas de linhas Tempo efetivo de acesso à cache seria impraticável Conclusão: Precisamos de um método de busca mais eficiente Diego Passos (UFF) Memória: Memória Cache FAC 19 / 53

22 Tipos de Mapeamento Na prática, problema da busca em cache é resolvido através de tipos de mapeamento Maneiras de se determinar em qual linha da cache cada bloco da MP pode ser inserido Há três tipos de mapeamento: O mapeamento direto O mapeamento associativo O mapeamento associativo por conjunto Diego Passos (UFF) Memória: Memória Cache FAC 20 / 53

23 Mapeamento Direto O mapeamento direto é a solução mais simples Divide-se a MP em blocos de X células X é o tamanho de uma linha da cache Blocos são numerados de 0 a B-1 B é o número de blocos Logo, a MP tem B X células Se a cache tem L linhas, o k-ésimo bloco da MP só pode ser armazenado na linha (k mod L) ie, o resto da divisão de k por L Diego Passos (UFF) Memória: Memória Cache FAC 21 / 53

24 Mapeamento Direto (II) Este esquema resulta no seguinte tipo de mapeamento: Bloco 0 linha 0 Bloco 1 linha 1 Bloco L-1 linha L-1 Bloco L linha 0 Bloco L+1 linha 1 Ou de outra forma: Blocos 0, L, 2L, 3L, são mapeados para a linha 0 Blocos 1, L+1 2L+1, 3L+1, são mapeados para a linha 1 Blocos 2, L+2 2L+2, 3L+2, são mapeados para a linha 2 Blocos L-1, L+(L-1), 2L+(L-1), 3L+(L-1), são mapeados para a linha L-1 Diego Passos (UFF) Memória: Memória Cache FAC 22 / 53

25 Mapeamento Direto: Exemplo Linha 0 Linha 1 Linha 2 Linha 3 Tag Célula 0 Célula 1 Bloco 0 { Bloco 1 { Bloco 2 { Bloco 3 { Bloco 4 { Bloco 5 Bloco 6 Bloco 7 { { { M bits Diego Passos (UFF) Memória: Memória Cache FAC 23 / 53

26 Mapeamento Direto: Endereços É fácil calcular para qual linha um bloco de memória deve ser mapeado Mas dado um endereço, digamos E, que queremos acessar, como determinar se ele está na cache? Note que o endereço E pertence ao bloco b = E div X Por sua vez, se este b estiver na cache, certamente estará na linha l = b mod L Neste caso, ele estará na célula c = E mod X Se X e L são potências de 2, podemos facilmente determinar l olhando para os bits de E: Se X = 2 i e L = 2 j : Com endereço de 4 bits, E = 1011 (10),? l c X = 2 e L = 4: { E i+j E i+j-1 { E i { E i-1 E 1 E 0 E = c = 1 l = 1? = 1 Diego Passos (UFF) Memória: Memória Cache FAC 24 / 53

27 Mapeamento Direto: Endereços (II) Mas ainda há um problema: como saber se o bloco que está na cache é o do endereço E ou algum outro bloco alocado para a mesma linha? eg, no exemplo anterior, o endereço 3 resultaria nos mesmos valores de c e l Como diferenciar? A resposta está no campo tag Dois ou mais endereços podem resultar nos mesmos c e l por terem o mesmo sufixo Mas seus prefixos serão diferentes Matematicamente, o prefixo pode ser definido como ((E div X) div L) Se X e L são potências de 2, basta olhar para os bits mais à esquerda do endereço Note ainda que duas células do mesmo bloco têm o mesmo prefixo Se guardarmos o prefixo no campo tag, poderemos discernir entre endereços de dois blocos diferentes Diego Passos (UFF) Memória: Memória Cache FAC 25 / 53

28 Mapeamento Direto: Acesso Em resumo, quando o processador tenta acessar um endereço de memória E: Identifica-se a linha que pode conter o endereço Compara-se o prefixo do endereço com o campo tag da linha Se o valor bate, cache hit Senão, cache miss Determina-se o bloco ao qual pertence o endereço Todo o bloco é trazido para a cache, na linha adequada Diego Passos (UFF) Memória: Memória Cache FAC 26 / 53

29 Mapeamento Direto: Endereços (Exemplo) Linha 0 Linha 1 Linha 2 Linha 3 Tag Célula 0 Célula Exemplos de Busca na Cache: E = 11 = E = 14 = (Cache hit) 1 1 (Cache miss) 1 0 c = 1 l = 1 tag = 1 c = 0 l = 3 tag = 1 Bloco 0 { Bloco 1 { Bloco 2 { Bloco 3 { Bloco 4 { Bloco 5 Bloco 6 Bloco 7 { { { M bits Diego Passos (UFF) Memória: Memória Cache FAC 27 / 53

30 Mapeamento Direto: Vantagens e Desvantagens 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 Diego Passos (UFF) Memória: Memória Cache FAC 28 / 53

31 O Mapeamento Associativo O grande problema do mapeamento direto é o fato de um bloco ter que ser colocado sempre na mesma linha Determinados conjuntos de blocos nunca podem estar simultaneamente em cache Mesmo que eles sejam os únicos acessados O ideal seria que pudéssemos mapear cada bloco da MP para qualquer linha da cache Neste caso, poderíamos ter qualquer conjunto de blocos em cache Limitado apenas pelo número de linhas disponíveis Diego Passos (UFF) Memória: Memória Cache FAC 29 / 53

32 O Mapeamento Associativo (II) Já tentamos fazer este mapeamento sem restrição Nossa primeira abordagem Não funcionava por requerer a comparação sequencial das tags com o endereço a ser acessado Mas e se pudéssemos fazer a comparação das tags em paralelo? ie, comparar todas as tags na cache ao endereço ao mesmo tempo Neste caso, determinar se um dado está em cache seria tão rápido quanto no mapeamento direto Diego Passos (UFF) Memória: Memória Cache FAC 30 / 53

33 O Mapeamento Associativo (III) De fato, esta comparação em paralelo é possível em hardware Cada linha da cache estaria ligada a um circuito comparador cuja entrada seria o endereço a ser acessado As saídas dos comparadores seriam combinadas através de uma função lógica OU Se uma das linhas tivesse a tag adequada, a saída seria verdadeira Este tipo de solução recebe o nome de mapeamento associativo Diego Passos (UFF) Memória: Memória Cache FAC 31 / 53

34 O Mapeamento Associativo: Endereços No mapeamento associativo, o campo tag corresponde ao número do bloco correspondente na MP Dado um endereço E a ser acessado, podemos obter o número do seu bloco computando b = E div X E, dentro do bloco, sua célula será c = E mod X Particularmente, se X é potência de 2: X = 2 i : b (demais bits) c (i bits) { E i { E i-1 E 1 E 0 Diego Passos (UFF) Memória: Memória Cache FAC 32 / 53

35 O Mapeamento Associativo: Vantagens e Desvantagens 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 Diego Passos (UFF) Memória: Memória Cache FAC 33 / 53

36 O Mapeamento Associativo por Conjunto O mapeamento direto é simples, mas não tão eficiente O mapeamento associativo é complexo, caro, mas muito eficiente A pergunta é: será que não há um meio termo? Sim, o mapeamento associativo por conjunto A cache é dividida em N conjuntos de linhas Assim como no mapeamento direto, cada bloco da MP tem um mapeamento fixo para um conjunto específico Mas dentro do seu conjunto, bloco pode ser armazenado em qualquer linha Como no mapeamento associativo Diego Passos (UFF) Memória: Memória Cache FAC 34 / 53

37 { { O Mapeamento Associativo por Conjunto: Exemplo Linha 0 Linha 1 Linha 2 Linha 3 Tag Célula 0 Célula 1 Mapeamento de Endereços Conjunto 0 Conjunto Conjunto 0 Conjunto 1 Bloco 0 { Bloco 1 { Bloco 2 { Bloco 3 { Bloco 4 { Bloco 5 Bloco 6 Bloco 7 { { { M bits Diego Passos (UFF) Memória: Memória Cache FAC 35 / 53

38 Mapeamento Associativo por Conjunto: Endereços Dado um endereço E da MP, como sabemos se o dado está na cache? Como no mapeamento direto, endereço é dividido em três partes: Célula do endereço dentro do bloco: dado por c = E mod X Número do conjunto: dado por n = (E div X) mod N Tag (para diferenciar dois blocos em um mesmo conjunto), dada por: t = (E div X) div N Se X e N são potências de 2, estes cálculos são triviais: Se X = 2 i e N = 2 j : Com endereço de 4 bits, E = 1011 (10), t n c X = 2 e N = 2: { { E i+j E i+j-1 E i { E i-1 E 1 E 0 E = c = 1 n = 1 t = 2 Diego Passos (UFF) Memória: Memória Cache FAC 36 / 53

39 Nível de Associatividade O mapeamento direto pode ser visto como um caso especial do mapeamento associativo por conjunto Cada conjunto possui uma única linha O mapeamento associativo também Um único conjunto O mapeamento associativo por conjunto, portanto, permite balancear os dois aspectos: Complexidade vs desempenho Diego Passos (UFF) Memória: Memória Cache FAC 37 / 53

40 Nível de Associatividade (II) Diego Passos (UFF) Memória: Memória Cache FAC 38 / 53

41 O Problema da Substituição de Bloco Diego Passos (UFF) Memória: Memória Cache FAC 39 / 53

42 O Problema da Substituição de Bloco Quando há um cache miss, além de delegar o acesso ao dado à MP, a cache também traz todo o bloco e o armazena Princípios da localidade temporal e espacial Mas geralmente não há uma linha vazia para o novo bloco Ao contrário, outro bloco tem que ser removido Nova pergunta: qual bloco remover? Diego Passos (UFF) Memória: Memória Cache FAC 40 / 53

43 O Problema da Substituição de Bloco (II) Para o mapeamento direto, a escolha é trivial Só há uma opção, porque cada bloco tem uma alocação fixa de linhas na cache Para os mapeamentos associativos (totalmente ou por conjuntos), a escolha é mais difícil Há várias opções de blocos a substituir Se pudéssemos adivinhar o futuro, faríamos a melhor escolha possível Bloco que vai demorar mais tempo para ser usado Diego Passos (UFF) Memória: Memória Cache FAC 41 / 53

44 O Problema da Substituição de Bloco (III) Embora não possamos adivinhar o futuro, podemos prevê-lo ou projetá-lo Usar informações passadas para tentar inferir o que acontecerá no futuro Duas abordagens neste sentido: Algoritmo FIFO (First In, First Out) Dentre os blocos candidatos, escolhe para substituição aquele colocado há mais tempo na cache Algoritmo LRU (Least Recently Used) Dentre os blocos candidatos, escolhe para substituição aquele cujo último acesso foi a mais tempo Diego Passos (UFF) Memória: Memória Cache FAC 42 / 53

45 O Problema da Substituição de Bloco (IV) Note que tanto o FIFO quanto o LRU necessitam do armazenamento de informações sobre os blocos na cache Quando foi colocado lá Qual foi a última utilização Ou seja, eles precisam de bookkeeping Torna a cache mais complexa e cara Há uma outra alternativa: Escolher para remoção um bloco aleatório Mais fácil e barato de implementar Desempenho razoável, muito próximo do LRU para alta associatividade Diego Passos (UFF) Memória: Memória Cache FAC 43 / 53

46 O Problema da Escrita Diego Passos (UFF) Memória: Memória Cache FAC 44 / 53

47 O Problema da Escrita Caches funcionam muito bem quando o processador precisa ler dados da memória Mas e quando é necessário escrever? Alterar o valor em uma determinada posição de memória A operação de escrita traz o seguinte dilema Devemos sempre atualizar os valores na MP para manter a consistência dos dados? [Write Through] Ou devemos fazer atualizações só na cache enquanto o bloco estiver lá? [Write Back] Diego Passos (UFF) Memória: Memória Cache FAC 45 / 53

48 O Problema da Escrita: Write Through Na técnica de Write Through, sempre que o processador atualiza uma posição de memória, o dado é atualizado tanto na cache, quanto na MP Mantém a consistência dos dados da cache e da MP ie, MP não tem dados com valores diferentes daqueles na cache Isso é bom porque: Simplifica substituição de bloco na cache Alguns dispositivos de E/S podem ler diretamente da MP, sem passar pela cache Por outro lado, escritas à memória são sempre lentas Sempre precisam ir à MP Diego Passos (UFF) Memória: Memória Cache FAC 46 / 53

49 O Problema da Escrita: Write Back Nesta técnica, escritas são sempre feitas em cache Apenas quando bloco é removido da cache, conteúdo é atualizado na MP Normalmente, há um bit chamado dirty que acusa se o bloco precisa ou não ser atualizado na MP Assim como as leituras, escritas também são tipicamente rápidas por acessar apenas a cache Por outro lado: Dispositivos de E/S que acessariam diretamente a memória precisam passar pela cache Isso pode sobrecarregá-la Há ainda a questão de como lidar com vários processadores/núcleos, cada um com sua própria cache Diego Passos (UFF) Memória: Memória Cache FAC 47 / 53

50 O Problema da Escrita: Write Once Outra técnica é o Write Once Apropriada para sistemas multiprocessados Na primeira escrita, a cache executa um Write Through Dado é atualizado na MP Outros componentes são avisados de que dado foi atualizado A partir da segunda escrita, cache simplesmente notifica outros componentes (eg, outros processadores) de que há alterações Outros componentes, ao precisar do dado, passam a requisitá-lo à cache com a versão atualizada Diego Passos (UFF) Memória: Memória Cache FAC 48 / 53

51 Outros Fatores Diego Passos (UFF) Memória: Memória Cache FAC 49 / 53

52 Níveis de Cache Computadores modernos geralmente têm vários níveis de cache eg, cache L1, L2 e L3 Os níveis mais baixos correspondem a caches pequenas e rápidas Quanto mais alto o nível, mais lenta é a cache, mas também maior Embora ainda muito mais rápidas e menores que a MP A justificativa dos vários níveis é a mesma para a existência da cache em primeiro lugar Se um nível é muito mais rápido que os níveis acima e conseguimos boas taxas de cache hit, então há ganho de desempenho Diego Passos (UFF) Memória: Memória Cache FAC 50 / 53

53 Bits de Controle Além do campo tag associado a cada linha e dos dados, uma cache pode armazenar certos bits de controle Um deles já foi citado antes: o bit dirty Indica que conteúdo do bloco foi alterado e precisa ser atualizado na MP Outro bit comum é o de validade Indica se o conteúdo de uma linha da cache é válido Conteúdo pode ser inválido, por exemplo, quando o processador é ligado Diego Passos (UFF) Memória: Memória Cache FAC 51 / 53

54 Tamanho da Cache e Largura de Linha Obviamente queremos sempre a maior cache possível Mas caches muito grandes não são viáveis Tamanhos típicos giram em torno de: Dezenas de KB na L1 Centenas de KB na L2 Alguns poucos MB na L3 Uma questão interessante é como alocar a memória disponível ie, qual a largura das linhas da cache Linhas maiores favorecem a localidade espacial Mas com linhas menores, podemos ter mais linhas Favorece situações em que os acessos são mais distribuídos Diego Passos (UFF) Memória: Memória Cache FAC 52 / 53

55 Exercício Suponha um computador com 4 GiB de memória RAM Memória é endereçada em células de 1 byte Cache possui linhas com 32 células cada (além do campo tag) No total, a cache possui 1024 linhas Determine o formato dos endereços de memória (eg, tag, coluna, etc) nos seguintes tipos de mapeamento: Mapeamento direto Mapeamento associativo Mapeamento associativo por conjunto com 16 conjuntos (com o mesmo número de linhas cada) Diego Passos (UFF) Memória: Memória Cache FAC 53 / 53

FUNDAMENTOS DE ARQUITETURAS DE COMPUTADORES MEMÓRIA CACHE CAPÍTULO 5. Cristina Boeres

FUNDAMENTOS DE ARQUITETURAS DE COMPUTADORES MEMÓRIA CACHE CAPÍTULO 5. Cristina Boeres FUNDAMENTOS DE ARQUITETURAS DE COMPUTADORES MEMÓRIA CACHE CAPÍTULO 5 Cristina Boeres Introdução! Diferença de velocidade entre Processador e MP O processador executa uma operação rapidamente e fica em

Leia mais

Memória Cache. Memória Cache. Localidade Espacial. Conceito de Localidade. Diferença de velocidade entre Processador/MP

Memória Cache. Memória Cache. Localidade Espacial. Conceito de Localidade. Diferença de velocidade entre Processador/MP Departamento de Ciência da Computação - UFF Memória Cache Profa. Débora Christina Muchaluat Saade [email protected] Memória Cache Capítulo 5 Livro do Mário Monteiro Conceituação Princípio da localidade

Leia mais

Capítulo 5 Livro do Mário Monteiro Conceituação. Elementos de projeto de memória cache

Capítulo 5 Livro do Mário Monteiro Conceituação. Elementos de projeto de memória cache Capítulo 5 Livro do Mário Monteiro Conceituação Princípio da localidade Funcionamento da memória cache Elementos de projeto de memória cache Mapeamento de dados MP/cache Algoritmos de substituição de dados

Leia mais

FUNDAMENTOS DE ARQUITETURAS DE COMPUTADORES MEMÓRIA CACHE CONTINUAÇÃO CAPÍTULO 5. Cristina Boeres

FUNDAMENTOS DE ARQUITETURAS DE COMPUTADORES MEMÓRIA CACHE CONTINUAÇÃO CAPÍTULO 5. Cristina Boeres FUNDAMENTOS DE ARQUITETURAS DE COMPUTADORES MEMÓRIA CACHE CONTINUAÇÃO CAPÍTULO 5 Cristina Boeres Mapeamento Associativo por Conjunto! Tenta resolver o problema de conflito de blocos na mesma linha (mapeamento

Leia mais

Princípio da Localidade Apenas uma parte relativamente pequena do espaço de endereçamento dos programas é acessada em um instante qualquer Localidade

Princípio da Localidade Apenas uma parte relativamente pequena do espaço de endereçamento dos programas é acessada em um instante qualquer Localidade Memória Cache Princípio da Localidade Apenas uma parte relativamente pequena do espaço de endereçamento dos programas é acessada em um instante qualquer Localidade Temporal Um item referenciado tende a

Leia mais

Organização de Computadores

Organização de Computadores Organização de Computadores Aula 21 Memória Cache Rodrigo Hausen 21 de outubro de 2011 http://cuco.pro.br/ach2034 1/49 Apresentação 1. Bases Teóricas 2. Organização de computadores... 2.2. Execução de

Leia mais

Correção de Erros. Erros de memória de semicondutores podem ser:

Correção de Erros. Erros de memória de semicondutores podem ser: Correção de Erros Erros de memória de semicondutores podem ser: Erros graves que constitui um defeito físico permanente; Erros moderados, onde a(s) célula(s) não são capazes de armazenar os dados ou fazem

Leia mais

MEMÓRIA CACHE FELIPE G. TORRES

MEMÓRIA CACHE FELIPE G. TORRES MEMÓRIA CACHE FELIPE G. TORRES MEMÓRIA CACHE O uso da memória cache visa obter velocidade de memória próxima das memórias mais rápidas que existem e, ao mesmo tempo, disponibilizar uma memória de grande

Leia mais

Hierarquia de Memória. Sistemas de Computação André Luiz da Costa Carvalho

Hierarquia de Memória. Sistemas de Computação André Luiz da Costa Carvalho Hierarquia de Memória Sistemas de Computação André Luiz da Costa Carvalho 1 Introdução l Pode ser definida como um local para armazenamento de informações, onde as duas únicas ações possíveis são a leitura

Leia mais

Memória. Memória Cache

Memória. Memória Cache Memória Memória Cache Revisão - Memória Principal Memória que armazena os dados e programas em linguagem de máquina em execução corrente Razoavelmente barata Tempo de acesso da ordem de nano-segundos a

Leia mais

Organização e Arquitetura de Computadores I

Organização e Arquitetura de Computadores I Organização e Arquitetura de Computadores I Memória Cache Slide 1 Introdução Tamanho Função de Mapeamento Política de Escrita Tamanho da Linha Número de Memórias Cache Cache em Níveis Slide 2 Introdução

Leia mais

Níveis de memória. Diferentes velocidades de acesso. Memória Cache. Memórias Auxiliar e Auxiliar-Backup

Níveis de memória. Diferentes velocidades de acesso. Memória Cache. Memórias Auxiliar e Auxiliar-Backup Memória Níveis de memória Diferentes velocidades de acesso Pequeno Alto(a) Cache RAM Auxiliar Auxiliar-Backup Memória Cache altíssima velocidade de acesso acelerar o processo de busca de informações na

Leia mais

Universidade Federal de Campina Grande Departamento de Sistemas e Computação Curso de Bacharelado em Ciência da Computação.

Universidade Federal de Campina Grande Departamento de Sistemas e Computação Curso de Bacharelado em Ciência da Computação. Universidade Federal de Campina Grande Departamento de Sistemas e Computação Curso de Bacharelado em Ciência da Computação Organização e Arquitetura de I Organização e Arquitetura Básicas B de (Parte II)

Leia mais

Fundamentos de Sistemas Operacionais

Fundamentos de Sistemas Operacionais Fundamentos de Sistemas Operacionais Aula 19: Memória Virtual: Introdução Diego Passos Última Aula Paginação Método de gerenciamento de memória mais usado hoje. Espaço de endereçamento de um processo é

Leia mais

Memória cache (cont.) Sistemas de Computação

Memória cache (cont.) Sistemas de Computação Memória cache (cont.) Sistemas de Computação Memórias cache CPU procura por dados em L, depois em L2 e finalmente na memória principal CPU registradores barramento de cache L cache ALU barramento de sistema

Leia mais

Aula 12: Memória: Barramentos e Registradores

Aula 12: Memória: Barramentos e Registradores Aula 12: Memória: Barramentos e Registradores Diego Passos Universidade Federal Fluminense Fundamentos de Arquiteturas de Computadores Diego Passos (UFF) Memória: Barramentos e Registradores FAC 1 / 34

Leia mais

Memória Cache endereço de memória

Memória Cache endereço de memória Memória Cache O modelo de Von Neumann estabelece que para ser executado, o programa deve estar armazenado na memória. A memória é organizada em grupos de bits chamados células (ou palavras), onde as informações

Leia mais

Hierarquia de Memória

Hierarquia de Memória No projeto de um sistema digital, deve-se ter em mente que hardware menor geralmente é mais rápido do que hardware maior. A propagação do sinal é uma das principais causas de atrasos. No caso da memória,

Leia mais

Organização e Arquitetura de Computadores. Ivan Saraiva Silva

Organização e Arquitetura de Computadores. Ivan Saraiva Silva Organização e Arquitetura de Computadores Hierarquia de Memória Ivan Saraiva Silva Hierarquia de Memória A Organização de Memória em um computador é feita de forma hierárquica Registradores, Cache Memória

Leia mais

ORGANIZAÇÃO E ARQUITETURA DE COMPUTADORES I AULA 12: MEMÓRIA CACHE: FUNÇÃO DE MAPEAMENTO (PARTE 1)

ORGANIZAÇÃO E ARQUITETURA DE COMPUTADORES I AULA 12: MEMÓRIA CACHE: FUNÇÃO DE MAPEAMENTO (PARTE 1) ORGANIZAÇÃO E ARQUITETURA DE COMPUTADORES I AULA 12: MEMÓRIA CACHE: FUNÇÃO DE MAPEAMENTO (PARTE 1) Prof. Max Santana Rolemberg Farias [email protected] Colegiado de Engenharia de Computação FUNÇÃO

Leia mais

Aula 11: Memória Principal: Conceitos Básicos e Organização

Aula 11: Memória Principal: Conceitos Básicos e Organização Aula 11: Memória Principal: Conceitos Básicos e Organização Diego Passos Universidade Federal Fluminense Fundamentos de Arquiteturas de Computadores Diego Passos (UFF) Memória Principal: Conceitos Básicos

Leia mais

SSC0640 Sistemas Operacionais I

SSC0640 Sistemas Operacionais I SSC0640 Sistemas Operacionais I 15ª Aula Gerenciamento de Memória Profa. Sarita Mazzini Bruschi [email protected] Slides adaptados de Marcos José Santana / Regina H. C. Santana / Luciana A. F. Martimiano

Leia mais

UFRJ IM - DCC. Sistemas Operacionais I. Unidade III Memória Primária. 29/04/2014 Prof. Valeria M. Bastos

UFRJ IM - DCC. Sistemas Operacionais I. Unidade III Memória Primária. 29/04/2014 Prof. Valeria M. Bastos UFRJ IM - DCC Sistemas Operacionais I Unidade III Memória Primária 29/04/204 Prof. Valeria M. Bastos ORGANIZAÇÃO DA UNIDADE Processador - Escalonamento Memória Primária Fundamentos Formas de Particionamento

Leia mais

Sistemas Operacionais Gerenciamento de Memória. Carlos Ferraz Jorge Cavalcanti Fonsêca

Sistemas Operacionais Gerenciamento de Memória. Carlos Ferraz Jorge Cavalcanti Fonsêca Sistemas Operacionais Gerenciamento de Memória Carlos Ferraz ([email protected]) Jorge Cavalcanti Fonsêca ([email protected]) Memória Física vs. Memória do Programa Memória P Física Tamanho dos softwares

Leia mais

Aula 16: UCP: Conceitos Básicos e Componentes

Aula 16: UCP: Conceitos Básicos e Componentes Aula 16: UCP: Conceitos Básicos e Componentes Diego Passos Universidade Federal Fluminense Fundamentos de Arquiteturas de Computadores Diego Passos (UFF) UCP: Conceitos Básicos e Componentes FAC 1 / 34

Leia mais

Sistemas de Memória II

Sistemas de Memória II Sistemas de Memória II José Costa Introdução à Arquitetura de Computadores Departamento de Engenharia Informática (DEI) Instituto Superior Técnico 2014-11-21 José Costa (DEI/IST) Sistemas de Memória II

Leia mais

Gerência de Memória. Endereçamento Virtual (1) Paginação. Endereçamento Virtual (2) Endereçamento Virtual (3)

Gerência de Memória. Endereçamento Virtual (1) Paginação. Endereçamento Virtual (2) Endereçamento Virtual (3) Endereçamento Virtual (1) Gerência de Memória Paginação Espaço de endereçamento dos processos não linearmente relacionado com a física Cada vez que são usados, os endereços virtuais são convertidos pela

Leia mais

Arquitetura de Computadores. Memórias

Arquitetura de Computadores. Memórias Arquitetura de Computadores Memórias Relembrando Arquitetura de Von Neuman Memória Acesso por palavra Programas são armazenados aqui Controlador de memoria Dispositivos de entrada Dispositivos de saída

Leia mais

Gerência de Memória. Paginação

Gerência de Memória. Paginação Gerência de Memória Paginação Endereçamento Virtual (1) Espaço de endereçamento dos processos não linearmente relacionado com a memória física Cada vez que são usados, os endereços virtuais são convertidos

Leia mais

Processador: Conceitos Básicos e Componentes

Processador: Conceitos Básicos e Componentes Processador: Conceitos Básicos e Componentes Cristina Boeres Instituto de Computação (UFF) Fundamentos de Arquiteturas de Computadores Material baseado nos slides de Fernanda Passos Cristina Boeres (IC/UFF)

Leia mais

Arquitetura e Organização de Processadores. Aula 4. Pipelines

Arquitetura e Organização de Processadores. Aula 4. Pipelines Universidade Federal do Rio Grande do Sul Instituto de Informática Programa de Pós-Graduação em Computação Arquitetura e Organização de Processadores Aula 4 Pipelines 1. Introdução Objetivo: aumento de

Leia mais

Memória Cache. Aula 24

Memória Cache. Aula 24 Memória Cache Aula 24 Introdução Objetivo: oferecer o máximo de memória disponível na tecnologia mais barata, enquanto se fornece acesso na velocidade oferecida pela memória mais rápida Velocidade CPU

Leia mais

AULA Nº 11 SISTEMAS OPERACIONAIS. Técnicas de Memória Virtual

AULA Nº 11 SISTEMAS OPERACIONAIS. Técnicas de Memória Virtual AULA Nº 11 SISTEMAS OPERACIONAIS Técnicas de Memória Virtual 1 Contextualizando Vimos Introdução ao Gerenciamento de Memória Agora Técnicas de Memória Virtual 2 O que é Memória Virtual (MV)? É uma técnica

Leia mais

Memória Cache. Walter Fetter Lages.

Memória Cache. Walter Fetter Lages. Memória Cache Walter Fetter Lages [email protected] Universidade Federal do Rio Grande do Sul Escola de Engenharia Departamento de Engenharia Elétrica Copyright (c) Walter Fetter Lages p.1 Introdução SRAM

Leia mais

Arquitetura de Computadores

Arquitetura de Computadores Departamento de Ciência da Computação Bacharelado em Ciência da Computação Arquitetura de Computadores Hierarquia de Memória Gabriel P. Silva Ementa Unidade 3: Hierarquia de Memória 3.1 Registradores 3.2

Leia mais

Infraestrutura de Hardware. Explorando a Hierarquia de Memória

Infraestrutura de Hardware. Explorando a Hierarquia de Memória Infraestrutura de Hardware Explorando a Hierarquia de Memória Perguntas que Devem ser Respondidas ao Final do Curso Como um programa escrito em uma linguagem de alto nível é entendido e executado pelo

Leia mais

Aula 19: UCP: Construindo um Caminho de Dados (Parte III)

Aula 19: UCP: Construindo um Caminho de Dados (Parte III) Aula 19: UCP: Construindo um Caminho de Dados (Parte III) Diego Passos Universidade Federal Fluminense Fundamentos de Arquiteturas de Computadores Diego Passos (UFF) UCP: Caminho de Dados (III) FAC 1 /

Leia mais

Organização e Arquitetura de Computadores I

Organização e Arquitetura de Computadores I Organização e Arquitetura de Computadores I Slide 1 Memória Virtual os primeiros computadores (início dos anos 60) tinham memória principal muito reduzida O PDP-1 funcionava com uma memória de 4096 palavras

Leia mais

Infraestrutura de Hardware. Explorando Desempenho com a Hierarquia de Memória

Infraestrutura de Hardware. Explorando Desempenho com a Hierarquia de Memória Infraestrutura de Hardware Explorando Desempenho com a Hierarquia de Memória Perguntas que Devem ser Respondidas ao Final do Curso Como um programa escrito em uma linguagem de alto nível é entendido e

Leia mais

Memória e Hierarquia de Memória. Memória Vs. Armazenamento

Memória e Hierarquia de Memória. Memória Vs. Armazenamento Memória e Hierarquia de Memória Memória Vs. Armazenamento Fichário Pasta O fichário representa o disco rígido, com alta capacidade de armazenamento. A pasta sobre a mesa representa a memória, de acesso

Leia mais

Arquitetura e Organização de Processadores. Aulas 9 e 10. Memória cache

Arquitetura e Organização de Processadores. Aulas 9 e 10. Memória cache Universidade Federal do Rio Grande do Sul Instituto de Informática Programa de Pós-Graduação em Computação Arquitetura e Organização de Processadores Aulas 9 e 10 Memória cache Tendências tecnológicas

Leia mais

Barramento. Prof. Leonardo Barreto Campos 1

Barramento. Prof. Leonardo Barreto Campos 1 Barramento Prof. Leonardo Barreto Campos 1 Sumário Introdução; Componentes do Computador; Funções dos Computadores; Estrutura de Interconexão; Interconexão de Barramentos Elementos de projeto de barramento;

Leia mais

Fundamentos de Sistemas Operacionais

Fundamentos de Sistemas Operacionais Fundamentos de Sistemas Operacionais Aula 6 Gerenciamento de Memória Prof. Galvez Considerações Gerais Multiprogramação implica em manter-se vários processos em memória Memória necessita ser alocada de

Leia mais

Aula 8: Complemento a Um e Complemento a Dois

Aula 8: Complemento a Um e Complemento a Dois Aula 8: Complemento a Um e Complemento a Dois Diego Passos Universidade Federal Fluminense Fundamentos de Arquiteturas de Computadores Diego Passos (UFF) Complemento a Um e Complemento a Dois FAC 1 / 40

Leia mais

ARQUITETURA E ORGANIZAÇÃO DE COMPUTADORES A UNIDADE LÓGICA ARITMÉTICA E AS INSTRUÇÕES EM LINGUAGEM DE MÁQUINA

ARQUITETURA E ORGANIZAÇÃO DE COMPUTADORES A UNIDADE LÓGICA ARITMÉTICA E AS INSTRUÇÕES EM LINGUAGEM DE MÁQUINA ARQUITETURA E ORGANIZAÇÃO DE COMPUTADORES A UNIDADE LÓGICA ARITMÉTICA E AS INSTRUÇÕES EM LINGUAGEM DE MÁQUINA Prof. Dr. Daniel Caetano 2012-2 Objetivos Conhecer o processador Compreender os registradores

Leia mais

Aula 7: Representações de Números Inteiros: Sinal e Magnitude e Representação em Excesso de k

Aula 7: Representações de Números Inteiros: Sinal e Magnitude e Representação em Excesso de k Aula 7: Representações de Números Inteiros: Sinal e Magnitude e Representação em Excesso de k Diego Passos Universidade Federal Fluminense Fundamentos de Arquiteturas de Computadores Diego Passos (UFF)

Leia mais

Organização e Arquitetura de Computadores I

Organização e Arquitetura de Computadores I Organização e Arquitetura de Computadores I BARRAMENTO Slide 1 Sumário Introdução Componentes de Computador Funções dos Computadores Estruturas de Interconexão Interconexão de Barramentos Slide 2 Introdução

Leia mais

Microprocessadores. Memórias

Microprocessadores. Memórias s António M. Gonçalves Pinheiro Departamento de Física Covilhã - Portugal [email protected] Arquitectura de Microcomputador Modelo de Von Neumann Barramento de Endereços µprocessador Entrada/Saída Barramento

Leia mais

Memória Cache Prof. Rômulo Calado Pantaleão Camara. Carga Horária: 60h

Memória Cache Prof. Rômulo Calado Pantaleão Camara. Carga Horária: 60h Memória Cache Prof. Rômulo Calado Pantaleão Camara Carga Horária: 60h Memória Cache Memória Principal Vs. Cache Fichário Quadro Pasta O fichário representa o disco rígido. A pasta sobre a mesa representa

Leia mais

Organização e Arquitetura de computadores. Memórias

Organização e Arquitetura de computadores. Memórias Organização e Arquitetura de computadores Memórias Introdução Funcionamento básico de um sistema microprocessado (Figura 1.10, Gabriel Torres) Programas são armazenados aqui Controlador de memoria Dispositivos

Leia mais

Organização e Arquitetura de Computadores

Organização e Arquitetura de Computadores Organização e Arquitetura de Computadores Hierarquia de Memória: Introdução Alexandre Amory Edson Moreno Nas Aulas Anteriores Computação Organização interna de CPU Parte operativa: Lógica combinacional

Leia mais

Arquitetura de Computadores

Arquitetura de Computadores Arquitetura de Computadores AULA 4 Organização de Sistemas de Computadores s Bits Sumário de Ordem de Bytes Conceitos Básicos Secundária Códigos de Correção de Erros Prof. Edilberto M. Silva Edilberto

Leia mais

Pesquisa em Memória Secundária. Prof. Jonas Potros

Pesquisa em Memória Secundária. Prof. Jonas Potros Pesquisa em Memória Secundária Prof. Jonas Potros Pesquisa em Memória Secundária Pesquisa em memória secundária: arquivos que contém mais registros do que a memória interna pode armazenar. Algoritmos e

Leia mais

Aula 06. Slots para Memórias

Aula 06. Slots para Memórias Aula 06 Slots para Memórias Slot para as memórias 2 Slot para as memórias Os soquetes de memória são numerados: 1, 2 e 3. Instale memória primeiro no 1, depois no 2, depois no 3. Normalmente não é permitido

Leia mais

ARQUITETURA E ORGANIZAÇÃO DE COMPUTADORES A UNIDADE LÓGICA ARITMÉTICA E AS INSTRUÇÕES EM LINGUAGEM DE MÁQUINA

ARQUITETURA E ORGANIZAÇÃO DE COMPUTADORES A UNIDADE LÓGICA ARITMÉTICA E AS INSTRUÇÕES EM LINGUAGEM DE MÁQUINA ARQUITETURA E ORGANIZAÇÃO DE COMPUTADORES A UNIDADE LÓGICA ARITMÉTICA E AS INSTRUÇÕES EM LINGUAGEM DE MÁQUINA Prof. Dr. Daniel Caetano 2012-1 Objetivos Conhecer o processador Compreender os registradores

Leia mais

Capítulo 7 Sistemas de Memória. Ch7a 1

Capítulo 7 Sistemas de Memória. Ch7a 1 Capítulo 7 Sistemas de Memória Ch7a 1 Memórias: Revisão SRAM (Static RAM): Valor é armazenado por meio da interligação de um par de inversores Rápido, mas consome mais espaço que DRAM (4 a 6 transistores)

Leia mais

Universidade Federal de Campina Grande Unidade Acadêmica de Sistemas e Computação Curso de Bacharelado em Ciência da Computação.

Universidade Federal de Campina Grande Unidade Acadêmica de Sistemas e Computação Curso de Bacharelado em Ciência da Computação. Universidade Federal de Campina Grande Unidade Acadêmica de Sistemas e Computação Curso de Bacharelado em Ciência da Computação Organização e Arquitetura de Computadores I Organização e Arquitetura Básicas

Leia mais

/17. Arquitetura de Computadores Subsistemas de Memória Prof. Fred Sauer

/17. Arquitetura de Computadores Subsistemas de Memória Prof. Fred Sauer /17 Arquitetura de Computadores Subsistemas de Memória Prof. Fred Sauer http://www.fredsauer.com.br [email protected] 2/17 S U M Á R I O PRINCÍPIO DA LOCALIDADE Conceito : gap entre processador/memória

Leia mais

1. A pastilha do processador Intel possui uma memória cache única para dados e instruções. Esse processador tem capacidade de 8 Kbytes e é

1. A pastilha do processador Intel possui uma memória cache única para dados e instruções. Esse processador tem capacidade de 8 Kbytes e é 1. A pastilha do processador Intel 80486 possui uma memória cache única para dados e instruções. Esse processador tem capacidade de 8 Kbytes e é organizado com mapeamento associativo por conjuntos de quatro

Leia mais

http://www.ic.uff.br/~debora/fac! 1 Capítulo 4 Livro do Mário Monteiro Introdução Hierarquia de memória Memória Principal Organização Operações de leitura e escrita Capacidade 2 Componente de um sistema

Leia mais

ü Capítulo 4 Livro do Mário Monteiro ü Introdução ü Hierarquia de memória ü Memória Principal ü Memória principal ü Memória cache

ü Capítulo 4 Livro do Mário Monteiro ü Introdução ü Hierarquia de memória ü Memória Principal ü Memória principal ü Memória cache Departamento de Ciência da Computação - UFF Principal Profa. Débora Christina Muchaluat Saade [email protected] Principal ü Capítulo 4 Livro do Mário Monteiro ü Introdução ü Hierarquia de memória

Leia mais

INTRODUÇÃO À TECNOLOGIA DA INFORMAÇÃO ACESSO, ATRIBUTOS E OPERAÇÕES COM ARQUIVOS PROFESSOR CARLOS MUNIZ

INTRODUÇÃO À TECNOLOGIA DA INFORMAÇÃO ACESSO, ATRIBUTOS E OPERAÇÕES COM ARQUIVOS PROFESSOR CARLOS MUNIZ INTRODUÇÃO À TECNOLOGIA DA OPERAÇÕES COM ARQUIVOS PROFESSOR CARLOS MUNIZ INTRODUÇÃO O Sistema de Arquivos é o modo como as informações são armazenadas nos dispositivos físicos de armazenamento, exemplo

Leia mais