Sequência 18 Memória Cache



Documentos relacionados
Memória cache. Prof. Francisco Adelton

Memória Cache. Prof. Leonardo Barreto Campos 1

Infraestrutura de Hardware. Memória Virtual

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;

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

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

Organização e Arquitetura de Computadores

Arquitetura e Organização de Computadores

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

Os textos nestas caixas foram adicionados pelo Prof. Joubert

Funções de um SO. Gerência de processos Gerência de memória Gerência de Arquivos Gerência de I/O Sistema de Proteção

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

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

Sistemas Operacionais Arquivos. Carlos Ferraz Jorge Cavalcanti Fonsêca

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

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

Cache. Cache. Direct Mapping Cache. Direct Mapping Cache. Internet. Bus CPU Cache Memória. Cache. Endereço Byte offset

Análises Geração RI (representação intermediária) Código Intermediário

Sistemas Operacionais

Estruturas do Sistema de Computação

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

AULA 13 - Gerência de Memória

Capítulo 4 Gerenciamento de Memória

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

ARQUITETURA DE COMPUTADORES II

Entrada e Saída. Interface entre periféricos, processador e memória. Fonte: Minho - Portugal 1

Arquitetura de Computadores. Arquitetura de Computadores 1

ANHANGUERA EDUCACIONAL. Capítulo 2. Conceitos de Hardware e Software

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

Disciplina: Sistemas Operacionais - CAFW-UFSM Professor: Roberto Franciscatto

Sistemas Operacionais

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

Unidade Central de Processamento (CPU) Processador. Renan Manola Introdução ao Computador 2010/01

Arquitetura e Organização de Computadores. Capítulo 0 - Introdução

Sistemas Operacionais

Estrutura Interna do KernelUNIX Sistema O. Estrutura Interna de Arquivos (1) Estrutura Seqüência. User application. Standard Unix libraries

3/9/2010. Ligação da UCP com o barramento do. sistema. As funções básicas dos registradores nos permitem classificá-los em duas categorias:

Arquitetura de Computadores. Tipos de Instruções

BARRAMENTO DO SISTEMA

Organização e Arquitetura de Computadores I

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

Sistemas Operacionais. Prof. André Y. Kusumoto

Desempenho DESEMPENHO DE COMPUTADORES

Sistemas Operacionais: Sistema de Arquivos

Aula 26: Arquiteturas RISC vs. CISC

Fundamentos de Sistemas Operacionais

28/9/2010. Paralelismo no nível de instruções Processadores superescalares

AVALIAÇÃO À DISTÂNCIA 1 GABARITO

Capítulo 3. Avaliação de Desempenho. 3.1 Definição de Desempenho

Memória - Gerenciamento. Sistemas Operacionais - Professor Machado

ARQUITETURA DE COMPUTADORES

SSC0112 Organização de Computadores Digitais I

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

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

ORGANIZAÇÃO DE COMPUTADORES MÓDULO 10

Capítulo 2 (Livro Texto*) - Notas de Aula - Parte II

Notas da Aula 17 - Fundamentos de Sistemas Operacionais

Sistema de Arquivos EXT3

CAPÍTULO 6 NÍVEL DE SISTEMA OPERACIONAL. Nível de Sistema Operacional. Nível de Máquina Convencional. Nível de Microprogramação

Armazenar dados e programas que serão utilizados pelo processador (CPU Unidade Central de Processamento)

Fundamentos de Arquivos e Armazenamento Secundário

Programação de Sistemas

MEMÓRIA. 0 e 1 únicos elementos do sistema de numeração de base 2

implementação Nuno Ferreira Neves Faculdade de Ciências de Universidade de Lisboa Fernando Ramos, Nuno Neves, Sistemas Operativos,

AULA 16 - Sistema de Arquivos

RAID. Propõe o aumento da confiabilidade e desempenho do armazenamento em disco. RAID (Redundant Array of Independent Disks )

PROJETO DE REDES

Arquitetura de Computadores Paralelismo, CISC X RISC, Interpretação X Tradução, Caminho de dados

SSC0611 Arquitetura de Computadores

Gerência de Entrada/Saída

Capítulo 4. MARIE (Machine Architecture Really Intuitive and Easy)

Comparativo de desempenho do Pervasive PSQL v11

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

Admistração de Redes de Computadores (ARC)

Sistemas Operacionais. Prof. André Y. Kusumoto

Prof. Yandre Maldonado - 1 PONTEIROS. Prof. Yandre Maldonado e Gomes da Costa

Backup. Permitir a recuperação de sistemas de arquivo inteiros de uma só vez. Backup é somente uma cópia idêntica de todos os dados do computador?

Organização e Arquitetura de Computadores

1.1. Organização de um Sistema Computacional

RISC X CISC - Pipeline

ARQUITETURA DE COMPUTADORES

O Hardware Dentro da Unidade do Sistema

Arquitetura e Organização de Computadores. Capítulo 0 - Introdução

Estrutura de um Computador

Componentes básicos de um sistema computacional. Cap. 1 (Stallings)

CPU - Significado CPU. Central Processing Unit. Unidade Central de Processamento

Informática I. Aula 5. Aula 5-13/05/2006 1

Organização de Computadores

Arquitetura de Von Neumann e os Computadores Modernos

Arquitetura de Computadores Celso Alberto Saibel Santos

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

Memórias Prof. Galvez Gonçalves

Organização e Arquitetura de Computadores I

Introdução a Informática. Prof.: Roberto Franciscatto

Figura 1 - O computador

Exercícios Gerência de Memória

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

Transcrição:

Organização e Arquitetura de Computadores Sequência 18 Memória Cache Understand the CPU-to-memory gap Understand issues and opportunities to fill the CPU-to-memory gap Understand the memory to storage gap Understand issues and opportunities to fill the memory-to-storage gap Seq.18 Memória Cache 1 Increasing core performance Increasing cores Increasing bus speed More memory Increasing density Faster interfaces Increasing latency NAND 1200 1000 800 600 400 200 0 Memory Transfer Rate chart: Micron research 1997 1998 1999 2000 2001 2002 2003 2004 2005 2006 2007

Normalized Latency per Core 1B 100M 10M 1M 1000 100 10 1 Clocks of Latency Level 1 Cache Level 2 Cache Main Memory Disk 32 16 8 4 Number of Cores 2 1 L1 L2 FSBus DRAM HDD Source: Instat, Micron, Intel AMD Barcelona Quad core 2M shared L3 cache Dedicated L2 caches Intel Penryn Dual/Quad core 6MB/12MB L2 cache Intel Nehalem Quad/8 core NAND CPU Relative Relative Latency Cost/bit 1 L1 Cache 200 2.5 L2 Cache 140 35 L3 Cache 120 300 DRAM 8 250,000 SSD 3 25,000,000 HDD 0.7 NAND Flash Closes the Latency Gap Cost/bit Data as of Aug 06

Power Reliability Space Performance Table 1: Observed failure rates System Source Type TerraServer SAN TerraServer Brick Web Property 1 Web Property 2 Barclay SCSI 10krpm Part Years Fails Fails /Year 858 24 2.8% controllers 72 2 2.8% san switch 9 1 11.1% Barclay SATA 7krpm 138 10 7.2% anon anon SCSI 10krpm 15,805 972 6.0% Controllers 900 139 15.4% PATA 7krpm 22,400 740 3.3% motherboard 3,769 66 1.7% HDD Controller ECC Application Operating System File System SSD Flash Translation Layer (FTL) Controller ECC NAND Flash Translation Layer Interfaces to traditional HDD File System Enables sector I/O to Flash Wear leveling Bad block management Automatic reclamation of erased blocks Power loss protection Manages multiple NAND devices Controller Manages Physical Protocol NAND Command encoding High Speed data transport (DMA/FIFO) Error Control Algorithm to control sector-level bit reliability Implemented in hardware with software control Algorithm depends upon Flash technology Source: Microsoft Research Hierarquia de Memória Memória Cache Seq.18 Memória Cache 11 Seq.18 Memória Cache 12

Memória Cache I Memória Cache II Se a memória virtual cria a ilusão de uma memória principal, física, ilimitada e mais rápida que a secundária, o objetivo da memória cache é criar outra grande ilusão: que as referências à memória serão atendidas na velocidade do processador. Seq.18 Memória Cache 13 Seq.18 Memória Cache 14 Princípio da localidade I Localidade espacial Os endereços gerados por um programa normalmente estão restritos a uma pequena região do espaço de endereçamento virtual (instruções de um programa e estruturas de dados). Princípio da localidade II Localidade temporal O conjunto de endereços varia lentamente no tempo. Se um item é referenciado, itens cujos endereços são próximos tendem a ser referenciados brevemente (execução de loops). Seq.18 Memória Cache 15 Seq.18 Memória Cache 16

Medida de Desempenho I Medida de Desempenho II O desempenho de uma memória cache depende de um conjunto de parâmetros tais como tamanho de blocos, tamanho da cache e do tipo de mapeamento utilizado. Cache Miss Quanto uma posição de memória acessada não está na cache. Cache hit Quanto uma posição de memória acessada esta na cache. Taxa de acerto: HR (hit rate) Taxa de falha: MR ( miss rate) MR = 1 - HR Seq.18 Memória Cache 17 Seq.18 Memória Cache 18 Desempenho Tempo de execução Modelo simplificado Tempo_de_execução = (ciclos_de_execução + ciclos_de_pausa) x tempo_de_ciclo Desempenho Tamanho do bloco I Aumentar o tamanho dos blocos tende a diminuir a taxa de falhas: ciclos_de_pausa = # de_instruções x taxa_de_falha x penalidade_de_falha Dois modos de melhorar o desempenho: diminuir a taxa de falha. diminuir a penalidade de falha. O que acontece se aumentarmos o tamanho do bloco? Bancos de Memória Interleaved memory - Intercalada Seq.18 Memória Cache 19 Seq.18 Memória Cache 20

Desempenho Tamanho do bloco II Alocação e Organização Como sabemos se um dado se encontra na cache? Caso afirmativo como localizá-lo? Mapeamento direto Mapeamento totalmente associativo Mapeamento associativo por grupos Seq.18 Memória Cache 21 Seq.18 Memória Cache 22 Para cada item da memória principal existe exatamente uma localização na cache onde o item pode estar. Vários itens da memória principal compartilham localizações na cache. Endereço é: Módulo(número de blocos na cache). Mapeamento direto Seq.18 Memória Cache 23

Mapeamento direto: Vantagens x Desvantagens Vantagens: Não há necessidade de algoritmo de substituição. Hardware simples e de baixo custo. Alta velocidade de operação. Desvantagens: Desempenho cai se acessos consecutivos são feitos a palavras de mesmo índice. Hit ratio inferior ao de caches com mapeamento associativo Mapeamento Set Associativo Set associativo: Do Inglês: "Set Associative". O mapeamento parcial é um projeto intermediário entre o mapeamento direto e o total, Neste caso, existem um número fixo de posições onde a palavra pode ser armazenada (pelo menos duas) que é chamado um conjunto. Uma cache com um conjunto de duas posições é chamada: 2-way set-associativa. Uma cache com um conjunto de quatro posições é chamada: 4-way set-associativa. Seq.18 Memória Cache 25 Seq.18 Memória Cache 26 Mapeamento Set Associativo 4 Way Seq.18 Memória Cache 27 Processador FastMATH, cache 16 KB com 256 blocos De 16 Words por bloco

Mapeamento Completamente Associativo Mapeamento CA : Vantagens x Desvantagens Do Inglês: "Fully-Associative". A palavra pode ser colocada em qualquer lugar da cache. Neste caso deve ser armazenado na cache não somente o dado mas também o endereço. Para descobrir se a posição procurada está armazenada na cache, é feita a comparação simultânea de todos os endereços, caso seja localizado (cache hit) o dado é devolvido ao processador. Caso o endereço pesquisado não se encontre na cache (cache miss) a memória principal é acessada. Vantagens: Máxima flexibilidade no posicionamento de qualquer palavra (ou linha) da memória principal em qualquer palavra (ou linha) da cache. Desvantagens: Custo em hardware da comparação simultânea de todos os endereços armazenados na cache. Algoritmo de substituição (em hardware) para selecionar uma linha da cache como conseqüência de um miss. Seq.18 Memória Cache 29 Seq.18 Memória Cache 30 Mapeamento associativo Estratégias de substituição I Quando ocorre cache miss, uma nova linha deve ser trazida da memória principal para a cache. Em que local da cache será colocada esta linha? A estratégia de substituição define qual linha será tirada da cache para dar lugar a nova. No caso do mapeamento direto, cada palavra tem um lugar pré-definido, então não existe escolha. No caso do mapeamento completamente associativo, pode-se se escolher qualquer posição da cache. No caso do set associativo, qualquer posição dentro do conjunto definido pelo índice. Seq.18 Memória Cache 31 Seq.18 Memória Cache 32

Estratégias de substituição II Substituição aleatória: Neste caso é escolhida uma posição qualquer da cache aleatoriamente para ser substituída. É mais simples de implementar mas não leva em conta o principio da localidade temporal. First-in First-out: Remove a linha que está a mais tempo na cache. Exige a implementação de uma fila em hardware. LRU - Least Recently Used: Menos recentemente utilizado. Remove a linha que a mais tempo não é referenciada. Exige implementação de um contador para cada linha. Quando um Hit ocorre na linha seu contador é zerado, enquanto todos os demais são incrementados. Quando for necessário substituir uma linha, será retirada aquela cujo contador tiver o valor mais alto. Políticas de escritas Como qualquer requisição de acesso à memória é feito através da cache, se a CPU fizer a escrita de uma posição que estiver armazendada na cache, e se esta alteração não for repassada para a memória principal, pode-se perder a atualização quando a linha da cache for substituída. Para evitar esse problema pode-se adotar duas estratégias: Write-Through Write-Back Seq.18 Memória Cache 33 Seq.18 Memória Cache 34 Políticas de escritas Write Through A política Write-Through passa cada operação não somente para a memória cache, mas também para a memória principal, garantindo desta forma que o tem na cache tem na memória principal. Toda vez que escrever na cache, também escreve na principal. Esta política é muito simples e lenta. Políticas de escritas Write Back A política Write-Back só escreve no cache. Quando o barramento estiver livre é que vai procurar na memória principal. Sua desvantagem é que quando a memória cache estiver cheia tem que garantir que o que está na cache, também está na memória principal. A política Write-back é mais complicada para ser implementada, mas fornece mais alta performance que a política write-through Seq.18 Memória Cache 35 Seq.18 Memória Cache 36

AMAT Tempo Médio de Acesso à Memória AMAT Average Memory Access Time Métrica que exprime qual é o tempo médio gasto no acesso a dados no sistema de memória. AMAT = Hit Time + MR * Miss Penalty Hit Time = Tempo gasto para acessar a memória cache. MR = Miss Rate = Taxa de falhas = (1 Hit Rate). Miss Penalty = Penalidade (em tempo) devido ao dado não estar na cache. Exercício típico sobre AMAT 1) Encontre o tempo médio de acesso (AMAT) à memória para uma máquina cujo tempo de ciclo é de 2 ns, cuja penalidade por falta é de 20 ciclos, com uma taxa de falhas de 5% por instrução, e com uma cache cujo tempo de acesso (incluindo a deteção do acerto) é de 1 ciclo de clock. Suponha que as penalidades para leituras e escritas são as mesmas e ignoram qualquer outra parada devida a operações de escrita. Resposta: Seq.18 Memória Cache 37 Seq.18 Memória Cache 38 Exercício típico sobre AMAT 2) Considerando o exercício anterior, suponha que possamos melhorar a taxa de faltas (miss rate) para 3% falta por referência, dobrando o tamanho da cache. Isto faz com que o tempo de acesso cresça para 1,2 ciclo de clock. Usando o AMAT como métrica, determine se as modificações são ou não convenientes. Resposta: Seq.18 Memória Cache 39