Organização e Arquitetura de Computadores I

Documentos relacionados
SSC0611 Arquitetura de Computadores

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

MEMÓRIA CACHE FELIPE G. TORRES

SSC0112 Organização de Computadores Digitais I

SSC0112 Organização de Computadores Digitais I

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

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. Memória Cache. Localidade Espacial. Conceito de Localidade. Diferença de velocidade entre Processador/MP

Memória Cache. Prof. Leonardo Barreto Campos 1

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

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

Organização de Computadores

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

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

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

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

Arquitetura de Computadores. Hierarquia de Memória. Prof. Msc. Eduardo Luzeiro Feitosa

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

Memória. Memória Cache

ELECTRÓNICA DE COMPUTADORES. Sumário

Memória Cache endereço de memória

É um sinal elétrico periódico que é utilizado para cadenciar todas as operações realizadas pelo processador.

Hierarquia de Memória

Arquitetura de Computadores

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

Memória Cache. Walter Fetter Lages.

Barramento. Prof. Leonardo Barreto Campos 1

PCS-2529 Introdução aos Processadores. Prof. Dr. Paulo Sérgio Cugnasca

SSC0640 Sistemas Operacionais I

INFORMÁTICA BÁSICA HARDWARE: COMPONENTES BÁSICOS E FUNCIONAMENTO.

Sistemas de Memória. CES-25 Arquiteturas para Alto Desmpenho. Paulo André Castro

Sistemas de Memória. CES-25 Arquiteturas para Alto Desmpenho. Paulo André Castro

ARQUITETURA DE COMPUTADORES

Organização e Arquitetura de Computadores I

SSC510 Arquitetura de Computadores 1ª AULA

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

Organização e Arquitetura de Computadores I

SISTEMAS OPERACIONAIS ABERTOS Prof. Ricardo Rodrigues Barcelar

Gerenciamento de memória

Microprocessadores. Memórias

Arquitetura e Organização de Computadores

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

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

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

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

DCC-IM/NCE UFRJ Pós-Graduação em Informática. Gabriel P. Silva. Microarquiteturas de Alto Desempenho

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

Arquitectura de Computadores

1ª Lista de Arquitetura de Computadores

RESUMO PROVA INTEGRADA (AV2)

Organização e Arquitetura de Computadores I

Memória Cache. Aula 24

Evolução dos computadores

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

ORGANIZAÇÃO E ARQUITETURA DE COMPUTADORES I AULA 10: MEMÓRIA E HIERARQUIA DE MEMÓRIAS

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

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

Memórias cache: uma introdução

AULA 03: PROCESSAMENTO PARALELO: MULTIPROCESSADORES

Arquitetura de Computadores. Memórias

Arquitectura de Computadores (ACom)

Gerenciamento de Memória

ENDEREÇAMENTO DE INSTRUÇÕES. Adão de Melo Neto

Organização e Arquitetura de Computadores I

ORGANIZAÇÃO DE COMPUTADORES MEMÓRIA. Prof. Dr. Daniel Caetano

Sistemas Operacionais. Prof. MSc. André Yoshimi Kusumoto

Memória virtual. Sistemas de Computação

Organização de Computadores Processadores, Placa Mãe e Memória RAM. Professor: Francisco Ary Alves de Souza

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

UNIDADE CENTRAL DE PROCESSAMENTO FELIPE G. TORRES

Memória cache segunda parte. Organização de Computadores. Aula 17. Memória cache segunda parte. 1. Mapeamento completamente associativo

Unidade Central de Processamento 2. Registradores

Hierarquia de Memória

Aula 06. Slots para Memórias

Infraestrutura de Hardware. Explorando a Hierarquia de Memória

Experimentos com o Cache Organização de Computadores

SEL-433 Aplicação de Microprocessadores I. Prof: Adilson Gonzaga

Sistemas Operacionais. - Gerência de Memória -

Memória Virtual. Prof. M.Sc. Bruno R. Silva CEFET-MG Campus VII

Estrutura Básica de um Computador

14/3/2016. Prof. Evandro L. L. Rodrigues

Memoria. UNIVERSIDADE DA BEIRA INTERIOR Faculdade de Engenharia Departamento de Informática

Organização e Arquitetura de computadores

HARDWARE COMPONENTES BÁSICOS E FUNCIONAMENTO. Wagner de Oliveira

Sistemas Operacionais. Prof. André Y. Kusumoto

Durante a evolução das arquiteturas de computadores e principalmente dos Sistemas Operacionais, muitas tecnologias tiveram que ser aprimoradas para

Capítulo 6 Nível do Sistema Operacional

1ª Lista de Arquitetura de Computadores

Os textos nestas caixas foram adicionados pelo Prof. Joubert

Memória. Arquitetura de Computadores I. DCC-IM/UFRJ Prof. Gabriel P. Silva

Arquitetura de Sistemas Operacionais

Memória Interna. Prof. Leonardo Barreto Campos 1

SSC0611 Arquitetura de Computadores

CEFET-RS Curso de Eletrônica

Aula 09. Módulos de Entrada e Saída

Organização de Computadores I

SEL-433 APLICAÇÕES DE MICROPROCESSADORES I

Principais Componentes do Gabinete. Componentes Básicos de um Computador. CPU ou UCP (Processador) 17/02/2017

SSC0611 Arquitetura de Computadores

Aula 13: Memória Cache

Transcrição:

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 O uso da memória cache, visa obter uma velocidade de acesso à memória próxima da velocidade das memórias mais rápidas e, ao mesmo tempo, disponibilizar no sistema uma memória de grande capacidade, a um custo equivalente ao das memórias de semicondutor mais barata. A memória cache é combinada com uma memória principal relativamente grande e lenta com a finalidade de obter um melhor desempenho. Slide 3

Introdução Transferência de Palavras Transferência de Bloco CPU Memória Cache Memória Principal Slide 4

Introdução A Memória Cache é constituída por várias linhas de palavras, sendo o número de linhas consideravelmente menor do que o número de blocos da memória principal. Ao ler um bloco da memória principal, ele é transferido para uma das linhas da memória cache, assim não é possível que uma linha armazene um mesmo bloco permanentemente, por isso, é necessário que cada linha inclua um rótulo, que identifica qual é o bloco de memória nela armazenada. Este rótulo é geralmente uma parte do endereço de memória principal. Slide 5

Introdução Nº de Linha 0 Rótulo Bloco C = número de linhas da memória 1 2.. C - 1 Tamanho do Bloco Slide 6

Início Recebe endereço RA da CPU O bloco que contem o endereço RA está na memória cache Sim Obtém o conteúdo da palavra no endereço RA entregue p/ CPU Não Efetua acesso à memória principal para obter o bloco que contém RA Aloca linha da cache para o bloco da Memória Principal Carrega o bloco na Memória Principal na linha da Cache Entrega a palavra em RA para a CPU Fim Slide 7

Introdução O processador gera um endereço, RA, da palavra a ser lida Se essa palavra estiver contida na memória cache, ela será entregue ao processador Caso contrário, o bloco que contém essa palavra será carregado na memória cache e a palavra entregue ao processador Essas duas últimas operações ocorrem paralelamente, refletindo a organização típica de memórias cache modernas Slide 8

Introdução Em memórias cache modernas, as linhas de dados e de endereços são também conectadas a áreas de armazenamento temporário de dados e de endereços, que se conectam ao barramento do sistema, por meio do qual é feito o acesso à memória principal. Slide 9

Introdução Endereço Processador Controle Memória Cache Controle Área de Armazenamento temporário de endereço Área de Armazenamento temporário de dados Barramento do Sistema Dados Slide 10

Tamanho da Memória Cache O tamanho de uma memória cache deve ser suficientemente pequeno, para que o custo total médio por bit seja próximo do custo por bit da memória principal e deve ser grande o suficiente para que o tempo de acesso médio a memória seja próximo ao tempo de acesso da memória principal. O tamanho da memória cache também é limitado pelo tamanho da pastilha e da placa de circuito. Quanto maior é a memória cache maior é o número de portas envolvidas no seu endereçamento e mais lento será seu processamento. Slide 11

Tamanho da Memória Cache Em suma, como o desempenho de uma memória cache é muito sensível à natureza da carga de trabalho imposta, é impossível determinar um tamanho ótimo. Slide 12

Slide 13

Função de Mapeamento Como o número de linhas de memória cache é menor do que o de blocos da memória principal, é necessário um algoritmo para mapear os blocos da memória principal em linhas da memória cache, é necessário ainda um mecanismo para determinar o bloco da memória principal que ocupa uma dada linha da memória cache, determinando como a memória cache é organizada. Slide 14

Função de Mapeamento Os exemplos que seguirão, incluem os seguintes elementos: A memória cache pode conter 64 Kbytes. Os dados são transferidos entre a memória principal e a memória cache em blocos de 4 bytes. Dessa forma, a memória cache é organizada com 16K = 214 linhas de 4 bytes cada uma. A memória principal com 16 Mbytes, sendo cada byte endereçável diretamente por um endereço de 24 bits. Slide 15

Função de Mapeamento Mapeamento Direto Cada bloco da memória principal é mapeado em uma única linha de cache. É representado pela seguinte equação: i = j módulo m i = número da linha da memória cache. j = número do bloco da memória principal. m = número de linhas na memória cache. Temos ainda: w: que indica uma única palavra ou byte dentro de um bloco da memória principal. s: que indica um único bloco da memória principal. r: que indica uma linha da memória cache. s r: rótulos que interpretam na memória cache os blocos da memória principal. Slide 16

Função de Mapeamento Mapeamento Direto Os blocos da memória principal são armazenados nas linhas da memória cache da seguinte forma: Linha da Memória Cache Blocos da Memória Principal Mapeados 0 0, m, 2m,..., 2/s m 1 1, m + 1, 2m + 1,..., 2/s m + 1 : m-1 m 1, 2m 1,..., 2/s - 1 Slide 17

Endereço de Memória rótulo Linha Palavra Organização e Arquitetura de Computadores I s + p Memória Cache Rótulo Dados L0 Memória Principal W0 W1 W2 W3 B0 s - r r p Comparação X s - r p Li X s p W4j W(4j+1) W(4j+2) W(4j+3) Bj Acerto na Cache L m - 1 Falha na Cache Slide 18

Rótulo Linha Palavra tag line word 8 14 2 Endereço de memória Principal Slide 19

FFFFFC 11111111-11111111111111-11 endereço tag line word FF 3FFF 3 16FFFC 00010110-11111111111111-11 endereço tag line word 16 3FFF 3 Slide 20

Função de Mapeamento Mapeamento Direto O Mapeamento Direto é simples e tem custo de implementação baixo, sua principal desvantagem é que cada bloco é mapeado em uma posição fixa na memória cache, assim se um programa fizer repetidas referências a palavras de dois blocos distintos, mapeados em uma mesma linha, esses blocos serão trocados continuamente na memória cache e a taxa de acertos à memória cache será baixa. Slide 21

Função de Mapeamento Mapeamento Associativo Evita a desvantagem do mapeamento direto, permitindo que cada bloco da memória principal seja carregado em qualquer linha da memória cache. Assim, o controle da memória cache interpreta um endereço de memória como constituído apenas por rótulo e campo de palavra. Onde o rótulo indica um bloco da memória principal, e para determinar se um bloco esta na memória cache, compare-se simultaneamente o campo de rótulo do endereço do bloco acessado, com os rótulos de todas as linhas. Slide 22

Função de Mapeamento Mapeamento Associativo Um endereço de memória principal, é composto de um rótulo de 22 bits e de um número de byte de 2 bits; Os 22 bits do rótulo são armazenados junto com os 32 bits de dados do bloco, em cada linha de memória cache; Dessa forma, o endereço hexadecimal de 24 bits, 16339C, tem rótulo igual a 058CE7. Isso pode ser visto mais facilmente utilizando a notação binária: Endereço de memória 0001 0110 0011 0011 1001 1100 (bin) 1 6 3 3 9 C (hex) Rótulo 00 0101 1000 1100 1110 0111 (bin) 0 5 8 C E 7 (hex) Slide 23

Endereço de Memória rótulo Palavra Organização e Arquitetura de Computadores I s + p Memória Cache Rótulo Dados L0 Memória Principal W0 W1 W2 W3 B0 s p X s p Li X s p W4j W(4j+1) W(4j+2) W(4j+3) Bj Comparação Acerto na Cache L m - 1 Falha na Cache Slide 24

Rótulo Palavra 22 2 Endereço de memória Principal Slide 25

Função de Mapeamento Mapeamento Associativo Ele oferece maior flexibilidade para a escolha do bloco a ser substituído quando um novo bloco é trazido para a memória cache. São utilizados algoritmos de substituição para maximizar a taxa de acertos na cache. A principal desvantagem do mapeamento associativo é a complexidade do conjunto de circuitos, necessários para a comparação dos rótulos de todas as linhas da memória cache em paralelo. Slide 26

Função de Mapeamento Mapeamento Associativo por Conjuntos Nesse mapeamento, são combinadas vantagens do mapeamento direto e do mapeamento associativo, e diminui suas desvantagens. A memória cache é dividida em v conjuntos, cada qual com k linhas. Em um mapeamento totalmente associativo, o rótulo de um endereço de memória é muito grande e é comparado com o rótulo de cada linha de memória cache. Slide 27

Função de Mapeamento Mapeamento Associativo por Conjuntos Em um mapeamento associativo por conjuntos de k linhas, o rótulo de um endereço de memória é muito menor e é comparado apenas com k rótulos de um mesmo conjunto. A figura a seguir, mostra nosso sistema utilizando um mapeamento associativo por conjuntos com duas linhas em cada conjunto, denominado mapeamento associativo por conjuntos de duas linhas. Slide 28

Endereço de Memória rótulo Conjunto Palavra s - d d p Organização e Arquitetura de Computadores I s + p Memória Principal Memória Cache B0 Rótulo Dados B1 F0 F1 Conjunto 0 F(k-1) Fk X s + p Bj X F(k+i) Conjunto 1 Comparação F(2k-1) Acerto na Cache Falha na Cache Slide 29

Rótulo Linha Palavra 9 13 2 Endereço de memória Principal Slide 30

Endereço FFFFFC 111111111111111111111100 111111111-111111111111100 1111111111111 tag line +word line 1FF 7FFC 1FFF Endereço 16FFFF 000101101111111111111111 000101101-111111111111111 11111111111111 tag line+word line 02C 7FFC 1FFF Slide 31

Função de Mapeamento Mapeamento Associativo por Conjuntos A organização de mapeamento associativo por conjuntos mais comum é a que usa duas linhas por conjunto (v = m/2, k = 2). Sua taxa de acertos é significativamente maior do que no caso do mapeamento direto. Um maior número de linhas por conjunto não apresenta melhoras significativas de desempenho. Slide 32

Algoritmo de Substituição Quando um novo bloco é trazido para a memória cache, um dos blocos existentes deve ser substituído. No mapeamento direto, cada bloco é mapeado em uma única linha, o que determina o bloco a ser substituído, não havendo alternativa possível. Nos demais mapeamentos, existe o uso de um algoritmo de substituição. Esse algoritmo é implementado em hardware para aumentar a velocidade de acesso à memória. Slide 33

Algoritmo de Substituição Os quatro algoritmos mais comuns são: Least recently used LRU: substitui o bloco menos recentemente usado. É usado um bit de USO para indicar quando uma linha foi referenciada. First-in-First-out FIFO: substitui o bloco do conjunto que foi armazenado primeiro na memória cache. Least frequently used LFU: substitui o bloco do conjunto menos freqüentemente utilizado. É usado um contador a cada linha da memória cache. Substituição aleatória. Slide 34

Política de Atualização Antes que um bloco residente na memória cache possa ser substituído, é necessário verificar se ele foi alterado: Se isso não ocorreu, então o novo bloco pode ser escrito sobre o bloco antigo. Caso contrário, se pelo menos uma operação de escrita foi feita, sobre uma palavra dessa linha de memória cache, então a memória principal deve ser atualizada. Slide 35

Política de Atualização Dois problemas devem ser considerados: Alteração da memória principal por um dispositivo de E/S Múltiplos processadores com múltiplas memórias cache Slide 36

Política de Atualização A técnica de atualização mais simples é denominada escrita direta (write-through); Todas as operações são feitas tanto na memória cache, quanto na memória principal A desvantagem é que ela gera um tráfego de memória considerável Um técnica alternativa é a escrita de volta (writeback) Slide 37

Política de Atualização Um técnica alternativa é a escrita de volta (writeback) As escritas são feitas apenas na memória cache O bloco só é substituído se seu bit de atualização estiver com o valor 1 Desvantagem: acesso de módulo de E/S direto à cache Slide 38

Tamanho da Linha O tamanho da linha da memória cache, está relacionado ao tamanho do bloco da memória principal. Quando aumentamos o número de linhas e blocos, temos um aumento de acerto na memória cache, devido a maior capacidade de armazenamento e reutilização da palavra, que foi utilizada e ainda continua armazenada na cache. Com um tamanho de bloco maior, mais dados úteis são trazidos para a memória cache. Com um grande aumento dos blocos a taxa de acerto tende a diminuir, porque a probabilidade de utilizar os dados buscados recentemente se torna menor do que a probabilidade de reutilizar os dados que foram substituídos. Slide 39

Número de Memórias Cache Existem dois aspectos importantes do projeto de sistemas com múltiplas memórias cache: o número de níveis e o uso de memórias cache unificadas ou separadas. Com o aumento da capacidade tecnológica dos circuitos integrados, foi possível acoplar a memória cache na mesma pastilha do processador, reduzindo a atividade externa do processador com barramentos, aumentando a velocidade e o desempenho global do sistema. Assim, com o surgimento da cache interna (L1), se tornou possível a utilização de mais uma memória cache no sistema, a cache externa (L2). Slide 40

Número de Memórias Cache Com o surgimento da cache interna tornou-se comum o uso de duas memórias cache: uma dedicada para dados e outra para instruções Vantagens das memórias cache unificadas: Se um padrão de execução envolve um número muito maior de buscas de instruções do que de busca de dados, a memória cache tende a ser preenchida com instruções, se o padrão envolve maior número de busca de dados ocorre o contrário. Apenas uma memória cache precisa ser projetada e implementada. Vantagens das memórias cache separadas: Elimina a disputa por acesso à memória cache entre o processador de instruções e a unidade de execução. Realiza buscas de instruções a serem processadas antecipadamente. Slide 41

Cache em Níveis Cache L1 Uma pequena porção de memória estática presente dentro do processador. Em alguns tipos de processador, como o Pentium 2, o L1 é dividido, em dois níveis: dados e instruções, que "dizem" o que fazer com os dados. A partir do Intel 486, começou a se colocar a L1 no próprio Processador. Slide 42

Cache em Níveis Cache L2 Possuindo o Cache L1 um tamanho reduzido e não apresentando uma solução ideal, foi desenvolvido o cache L2, que contém muito mais memória que o cache L1. Ela é mais um caminho para que a informação requisitada não tenha que ser procurada na lenta memória principal. Alguns processadores colocam essa cache fora do processador, por questões econômicas, pois uma cache grande implica num custo grande, mas há exceções, como no Pentium II, por exemplo, cujas caches L1 e L2 estão no mesmo cartucho onde está o processador. Slide 43

Cache em Níveis Cache L3 Terceiro nível de cache de memória. Inicialmente utilizado pelo AMD K6-III (por apresentar o cache L2 integrado ao seu núcleo), utilizava o cache externo presente na placa-mãe, como uma memória de cache adicional. É um tipo de cache raro, ainda hoje, mas a complexidade dos processadores atuais, com suas áreas chegando a milhões de transistores por micrômetros de área, ela ainda será muito útil. Slide 44