Memória cache. Prof. Francisco Adelton



Documentos relacionados
Diminui o gargalo existente entre processador e memória principal; 5 a 10 vezes mais rápidas que a memória principal; Ligada diretamente à MP;

Arquitetura e Organização de Computadores

Memória Cache. Prof. Leonardo Barreto Campos 1

Os textos nestas caixas foram adicionados pelo Prof. Joubert

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

Sistemas Operacionais Arquivos. Carlos Ferraz Jorge Cavalcanti Fonsêca

Introdução. Principio de Localidade. Localidade temporal: Localidade Espacial:

armazenamento (escrita ou gravação (write)) recuperação (leitura (read))

Curso de Instalação e Gestão de Redes Informáticas

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

MEMÓRIA M.1 - HIERARQUIA DE MEMÓRIAS NUM COMPUTADOR DIGITAL

Introdução. Hardware (Parte II) Universidade Federal de Campina Grande Departamento de Sistemas e Computação. joseana@computacao.ufcg.edu.

Tecnologias de Construção de Memórias e Memórias RAM, entrelaçada e Virtual

ARQUITETURA DE COMPUTADORES II

Sistema de Memórias de Computadores

CENTRAL PRCESSING UNIT

Capítulo 4 Gerenciamento de Memória

Gerenciamento de memória

Memória Virtual. Prof. Dr. José Luís Zem Prof. Dr. Renato Kraide Soffner Prof. Ms. Rossano Pablo Pinto

Organização de Computadores 1

Infraestrutura de Hardware. Memória Virtual

Capítulo 4 Gerenciamento de Memória

Técnico em Informática - Instalação e Manutenção de Computadores PROCESSADORES

Introdução a Organização de Computadores Aula 4

Arquitetura de processadores: RISC e CISC

Sistemas Operacionais. Prof. André Y. Kusumoto

AULA 6 Esquemas Elétricos Básicos das Subestações Elétricas

Organização e Arquitetura de Computadores

AULA 16 - Sistema de Arquivos

Paralelismo a Nível de Instrução

Comunicação Fim-a-Fim a Alta Vede em Redes Gigabit

PROCESSADORES. Introdução 25/04/2012. Professor Marlon Marcon

Técnicas de Manutenção de Computadores

Organização de Computadores Prof. Alex Vidigal Bastos

Gerenciamento Básico B de Memória Aula 07

Capítulo 4 Gerenciamento de Memória

Gerenciamento de memória

ARQUITETURA DE COMPUTADORES

2. A influência do tamanho da palavra

Regras Métodos Identificadores Variáveis Constantes Tipos de dados Comandos de atribuição Operadores aritméticos, relacionais e lógicos

Memória - Gerenciamento. Sistemas Operacionais - Professor Machado

SOP - TADS Sistemas de Arquivos Cap 4 Tanenmbaum

Simulação do Processo de Substituição de Páginas em Gerência de Memória Virtual

Aula 06. Memórias RAM

REPRESENTAÇÃO DE DADOS EM SISTEMAS DE COMPUTAÇÃO AULA 03 Arquitetura de Computadores Gil Eduardo de Andrade

Introdução. Uso do disco Vantagens Desvantagens Baixo custo, facilidade de manutenção do software e do hardware, simetria e flexibilidade

DISPOSITIVOS DE BLOCO. Professor: João Paulo de Brito Gonçalves

Programação de Sistemas

Capítulo Sistemas de Memória Memória Virtual. Ch7b 1

Organização e Arquitetura de Computadores

4) Abaixo está representado o nó_i do arquivo SO.txt em um sistema UNIX.

O hardware é a parte física do computador, como o processador, memória, placamãe, entre outras. Figura 2.1 Sistema Computacional Hardware

A memória é um recurso fundamental e de extrema importância para a operação de qualquer Sistema Computacional; A memória trata-se de uma grande

Introdução à Organização de Computadores Memória Principal

ARQUITETURA DE COMPUTADORES

Gerenciamento de Entrada e Saída Hélio Crestana Guardia e Hermes Senger

Aula 14: Instruções e Seus Tipos

Sistemas de Arquivos NTFS, FAT16, FAT32, EXT2 e EXT3

Introdução à Arquitetura de Computadores. Prof.ª Ms. Elaine Cecília Gatto

ESTUDO DE VIABILIDADE. Santander, Victor - Unioeste Aula de Luiz Eduardo Guarino de Vasconcelos

Computador E/S, Memória, Barramento do sistema e CPU Onde a CPU Registradores, ULA, Interconexão interna da CPU e Unidade de controle.

Tudo o que você precisa saber sobre cartões de memória

Sistemas Processadores e Periféricos Aula 9 - Revisão

Memórias. O que são Memórias de Semicondutores? São componentes capazes de armazenar informações Binárias (0s e 1s)

BACHARELADO EM SISTEMAS DE INFORMAÇÃO EaD UAB/UFSCar Sistemas de Informação - prof. Dr. Hélio Crestana Guardia

Estrutura de um Computador

AULA 1. Informática Básica. Gustavo Leitão. Disciplina: Professor:

Problema: Solução: Vantagens da estruturação em Níveis: Introdução INTRODUÇÃO À ARQUITETURA DE COMPUTADORES. Introdução

Sistemas Computacionais II Professor Frederico Sauer

Sistemas Operacionais. Roteiro. Introdução. Marcos Laureano

Conceitos Básicos. Conceitos Básicos Memória

Sistemas de Arquivos. André Luiz da Costa Carvalho

Figure 2 - Nós folhas de uma árvore binária representando caracteres ASCII

ARQUITETURA E ORGANIZAÇÃO DE COMPUTADORES SISTEMAS DE NUMERAÇÃO: REPRESENTAÇÃO EM PONTO FLUTUANTE. Prof. Dr. Daniel Caetano

MEMÓRIA. A memória do computador pode ser dividida em duas categorias:

BC Sistemas Operacionais Sistema de Arquivos (aula 10 Parte 2) Prof. Marcelo Z. do Nascimento

Concurso Público para provimento de cargo efetivo de Docentes. Edital 20/2015 CIÊNCIA DA COMPUTAÇÃO I Campus Rio Pomba

O processador é um dos elementos componentes do computador moderno, sendo responsável pelo gerenciamento de todo o computador.

ORGANIZAÇÃO DE COMPUTADORES MÓDULO 10

Notas da Aula 17 - Fundamentos de Sistemas Operacionais

Circuitos de Memória: Tipos e Funcionamento. Fabrício Noveletto

FACENS Engenharia Mecatrônica Sistemas de Computação Professor Machado. Memória Armazenamento Sistema de Arquivos

Disciplina: Introdução à Engenharia da Computação

PROCEDIMENTOS PARA ORGANIZAÇÃO E ENTREGA DE DOCUMENTOS NOVOS

Introdução à estrutura e funcionamento de um Sistema Informático

Trabalho 7 Fila de prioridade usando heap para simulação de atendimento

Fundamentos de Sistemas Operacionais. Sistema de Arquivos. Prof. Edwar Saliba Júnior Março de Unidade Sistemas de Arquivos

PROJETO DE REDES

Memória RAM. A memória RAM evolui constantemente. Qual a diferença entre elas? No clock (velocidade de comunicação com o processador)

Projeto de Redes de Computadores. Projeto do Esquema de Endereçamento e de Nomes

Exercícios Teóricos Resolvidos

Arquitetura e organização de computadores

Organização de Computadores Como a informação é processada?

Introdução à Arquitetura de Computadores

Comunicação de Dados

Marcos da Arquitetura de Computadores (1)

Transcrição:

Memória cache Prof. Francisco Adelton

Memória Cache Seu uso 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 baratas. Contém uma cópia de parte da memória principal. Quando o processador deseja ler uma palavra da memória, é realizado um teste para se a palavra está na memória cache. Se estiver, ela é fornecida ao processador. Caso contrário, um bloco de dados da memória principal, constituído de um número fixo de palavras, é lido para a memória cache e em seguida a palavra requerida é entregue ao processador.

Memória Cache Objetivo - Simular a existência de uma memória de grande capacidade e alta velocidade para a CPU. Operação - Manter em uma memória de pequena capacidade e alta velocidade cópias das posições que mais provavelmente serão acessadas na MP.

conceitos básicos Princípio da proximidade: Programas tendem a reutilizar os dados e as instruções usados recentemente. Existem 2 tipos de proximidade: proximidade temporal: Num futuro próximo, o programa irá referenciar os programas e dados referenciados recentemente; proximidade espacial: Num futuro próximo, o programa irá referenciar os programas e objetos de dados que tenham endereços próximos das últimas referências.

Como memória rápida é cara, a memória é geralmente organizada numa hierarquia de vários níveis: cada nível tem menor capacidade, é mais rápido e mais caro que o seguinte. Freqüentemente cada nível está contido no seguinte (mas nem sempre). A hierarquia de memória também é responsável pela verificação de endereços (já que tem de mapear endereços nos níveis corretos). A importância da hierarquia de memória tem aumentado com os avanços de CPU.

Uma hierarquia de memória simples

Termos Cache hit CPU encontra item na cache (acerto). Cache miss CPU não encontra item na cache (falha). Bloco - conjunto de dados (de tamanho fixo) que é obtido de memória e colocado em cache (contém o item pedido). A proximidade temporal implica que o item será utilizado de novo dentro de pouco tempo. A proximidade espacial implica que haja uma probabilidade elevada de que os outros dados do bloco sejam usados dentro de pouco tempo. O tempo necessário para processar uma falha depende da latência e da largura de banda da memória. A latência determina o tempo necessário para obter o primeiro elemento do bloco. A largura de banda determina o tempo necessário para obter o resto do bloco.

Termos Write-through (escrita direta), quando o processador precisa armazenar dados na memória o controlador de cache de memória atualizava a memória RAM imediatamente. Write back (contra-escrita), as operações de escrita a memória RAM não é atualizada imediatamente, o processador armazena os dados no cache de memória e o controlador de memória atualiza a memória RAM apenas quando ocorrer um erro do cache.

Níveis de Cache Nível 1 (L1): Localizada no interior do núcleo do processador, trabalha na velocidade de clock do sistema, e é a primeira a ser consultada pela CPU. Pode estar dividida em Cache de Instruções e de Dados. Ex: AMD Athlon: 128KB divididos (64KB instruções + 64KB dados). Nível 2 (L2): Antigamente localizada na placamãe do computador, atualmente é construída dentro da mesma pastilha do processador (a partir do Pentium 3). Possui menor velocidade e maior capacidade que a L1. Tamanho típico de 512KB

Níveis de Cache Nível 3 (L3): Existente apenas em alguns sistemas, é atualmente integrada ao processador (Ex: Intel Xeon), e possui maior capacidade e menor velocidade que a Cache L2, com tamanho típico de 1 a 2MB. Front Side Bus (FSB): Barramento de conexão entre a MP e a CPU (localizado na placa-mãe). Back Side Bus (BSB): Barramento de conexão entre a Cache L2 e a CPU (localizado dentro do invólucro do processador).

Mapeamento de Dados entre MP e Cache Capacidade da MP muito maior do que a Cache => Somente partes da MP podem ser carregadas na Cache. Problema: Como saber se um determinado dado (ou instrução) está carregado na Cache? Solução: Mapeamento Traduzir endereços da MP para a Cache.

Organização do Cache de Memória O cache de memória é divido internamente em linhas, cada uma podendo guardar de 16 a 128 bytes, dependendo do processador. Na maioria dos processadores atuais o cache de memória está organizado em linhas de 64 bytes (512 bits), portanto consideraremos um cache de memória usando linhas de 64 bytes em nossos exemplos dados nesta aula.

Organização do Cache de Memória Portanto, um cache de memória L2 de 512 KB é dividido em 8.192 linhas. Lembre-se que 1 KB é igual a 2^10 ou 1.024 bytes. A conta é a seguinte: 524.288 / 64 = 8.192. Consideraremos um processador de um único núcleo com 512 KB de memória cache L2 em nossos exemplos.

Organização do Cache de Memória

Memórias Tag: informa qual linha da mem. principal está armazenada na linha de cache correspondente.

Tipos de mapeamentos Para efetuar a transferência de um bloco de dados da MP para uma linha da Cache, pode-se utilizar três tipos de mapeamento: Direto; Associativo; Associativo por Grupos;

Mapeamento Direto Neste tipo de organização, há apenas uma posição no cache para onde um item de dado pode ser transferido. As vantagens deste tipo de organização incluem: Simplicidade de hardware, e conseqüentemente custo mais baixo; Não há necessidade de escolher uma linha para ser retirada do cache, uma vez que há uma única opção. Isto dispensa a implementação de um algoritmo de troca de linhas; Operação rápida Apesar de simples, esta estratégia é pouco utilizada devido à sua baixa flexibilidade. Como há apenas uma posição no cache onde o item solicitado pode estar localizado, a probabilidade de presença no cache hit pode ser baixa. Assim, pode haver queda sensível no desempenho em situações onde o processador faz referências envolvendo itens que são mapeados para uma mesma posição do cache.

Exemplo Se tivermos um micro com 1 GB de memória RAM, esse 1 GB será dividido em 8.192 blocos (assumindo que o cache de memória use a configuração que descrevemos acima), cada um com 128 KB (1.073.741.824 / 8.192 = 131.072 lembre-se que 1 GB é igual a 2^30 bytes, 1 MB é igual a 2^20 bytes e 1 KB é igual a 2^10 bytes). Se o micro tivesse 512 MB a memória também seria dividida em 8.192 blocos, mas desta vez cada bloco teria 64 KB. E assim por diante.

Mapeamento Direto

Exercício Suponha uma MP com espaço de endereçamento de 4G células, tendo cada uma um endereço de 32 bits (2 32 = 4G). Assuma que a Memória Cache associada a esta MP possui uma capacidade de armazenamento de 64KBytes, divididos em 1024 linhas, com capacidade de 64 Bytes por linha (64KBytes/1024 linhas = 64 Bytes por linha). Cada linha da Cache deverá acomodar quantos blocos da MP (um de cada vez)?

Neste esquema, os blocos da MP não possuem um Quadro da Cache fixado previamente para o seu armazenamento. Neste caso, o endereço da MP é dividido em 2 campos: Deslocamento: Os mesmos 6 bits menos significativos utilizados para localizar o conteúdo de uma célula dentro do bloco armazenado. Tag: Identifica o endereço completo do bloco da MP. Como a MP foi dividida em 64M Blocos (B= 64M), o número de bits atribuído para o campo Tag deve ser suficiente para endereçar todos os blocos (2 26 = 64M).

Operação de Leitura na Cache com Mapeamento Associativo Em caso positivo, o conteúdo da célula desejada é localizado dentro do bloco através dos 6 bits de Deslocamento, e então transferido para a CPU. Em caso negativo, o endereço do bloco (Tag) é utilizado para localizar o bloco desejado na MP e trazê-lo até a Cache, substituindo um bloco anteriormente carregado. Problema: Qual bloco já carregado na Cache deverá dar lugar ao novo bloco a ser carregado? Depende do Algoritmo de Substituição utilizado.

Conclusão sobre o Mapeamento Associativo Esta técnica de mapeamento evita o problema da fixação dos blocos aos Quadros da Cache que ocorre no Mapeamento Direto. Por outro lado, exige uma lógica mais complexa na Cache, de modo a examinar rapidamente cada campo Tag de todas as linhas da Cache. Existe ainda o problema do desenvolvimento de um algoritmo de substituição adequado para a troca dos blocos carregados na Cache.

Cache Associativo por Grupos de n-vias Nesta configuração o cache de memória é dividido em vários blocos (grupos) contendo n linhas cada. Dessa forma em um cache associativo por grupos de 4 vias o cache de memória terá 2.048 blocos contendo quatro linhas cada (8.192 linhas / 4). Aqui nós estamos continuando com o nosso exemplo de um cache L2 de 512 KB dividido em 8.192 linhas de 64 bytes. Dependendo do processador o número de blocos será diferente.

Cache Associativo por Grupos de n-vias

Exemplo A memória RAM é dividia no mesmo número de blocos disponível no cache de memória. Continuando o exemplo do cache de 512 KB Associativo por grupos de 4 vias, a memória RAM seria dividida em 2.048 blocos, o mesmo número de blocos disponível dentro do cache de memória. Cada bloco da memória será vinculado a um conjunto de linhas dentro do cache, da mesma forma que no cache com mapeamento direto. Com 1 GB de memória RAM, a memória seria dividida em 2.048 blocos com 512 KB cada.

Exemplo

Cache Associativo por Grupos de n-vias Como você ver o mapeamento é similar ao que acontece com o cache com mapeamento direto, a diferença é que para cada bloco de memória existe agora mais de uma linha disponível no cache de memória. Cada linha pode armazenar o conteúdo de qualquer endereço dentro do bloco mapeado. Em um cache Associativo por grupos de 4 vias cada grupo no cache de memória pode armazenar até quatro linhas do mesmo bloco de memória.

TAMANHO DA MEMÓRIA CACHE A escolha do tamanho do bloco na memória cache é uma decisão de compromisso. Blocos grandes tendem a aumentar a taxa de acerto mas possuem os seguintes incovenientes: Pode diminuir a taxa de acerto global por não permitirem a convivência simultânea de muitos blocos na cache. Em caso de leitura com falhas o tempo de acesso em geral aumenta, pois mais informações precisam ser lidas na MP. Perde-se tempo de transferência. Blocos grandes podem acarretar a ocupação desnecessária do cache com informações que nunca serão utilizadas.

Exercício 1. Cache de Memória L2 nos Processadores Multi- Núcleos: Nos processadores com mais de um núcleo a arquitetura do cache L2 varia muito, dependendo do processador. Faça um comparativo entre as atuais soluções de cache de memória L2 presentes nos processadores de núcleos múltiplos(fabricantes Intel e AMD). 2. O que acontece: Se usando um cache L2 de 512KB, se nós aumentássemos o cache para 1 MB (a única maneira de fazer isso seria substituindo o processador), quantas linhas de 64 bytes teríamos no cache de memória? Qual o total de grupos com quatro linhas cada?a RAM de 1 GB seria dividida em X blocos de quantos KB?

POLÍTICAS PARA SUBSTITUIÇÃO DE BLOCOS NA MEMÓRIA CACHE (Não se aplica ao mapeamento direto pois não se tem escolha onde alocar o dado) Os esquemas de mapeamento totalmente associativo ou associativo por conjunto exige uma política de substituição de blocos exigem uma política de substituição de blocos na memória cache. Algumas dessas políticas são: Randômica: Um bloco é escolhido aleatoriamente para ser substituído. Política de fácil implementação, mas gera problemas de desempenho em esquemas totalmente associativo. Pode descartar um dado que seria utilizado em seguida. FIFO - (First In First Out) O bloco que está a mais tempo no cache é substituído. Menos simples de implementar e pode gerar problemas de desempenho se o bloco mais antigo estiver sendo ainda muito utilizado. LRU - (Least Recently Used) Substitui-se o bloco que há mais tempo não é utilizado. É o esquema com o melhor desempenho e sua implementação é a mais complicada. Um bit na cache marca se ela foi ou não utilizada em cada tic do clock (Não é utilizado na prática pois consome memória cache para armazenar tais informações).

ABORDAGENS PARA MELHORAR O DESEMPENHO DA CACHE Reduzir a taxa de "miss" aumentando a probabilidade de "hit" Reduzir o tempo de acesso em caso de "hit" Utilizar o write-buffer (Buffer para escrita) para evitar que o processador aguarde a escrita na MP no modo write through Utilizar a cache de instruções e dados separados para possibilitar acessos simultâneos no cachje pelo processador Obs: Blocos são como páginas. Só se pega na MP bloco a bloco, mesmo que o primeiro bloco só contenha metade da informação que você deseja. Write Buffer é um cache separado só para escrita. Economiza tempo de acesso.