Hierarquia de memória

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

Memória Cache: Funcionamento

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

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

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

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

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

Memória. Conceitos gerais Hierarquia de memórias

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

Programação em Sistemas Computacionais

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

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

Organização e Arquitetura de Computadores

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

Memória Cache. Walter Fetter Lages.

Organização de Computadores

Infraestrutura de Hardware. Explorando a Hierarquia de Memória

Microprocessadores. Memórias

Arquitetura de Computadores. Memórias

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

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

Sistemas de Memória II

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

Hierarquia de Memória

Arquitetura de Computadores

Hierarquia de Memória

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

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

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

Arquitectura de Computadores II

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


Memória Principal. Tiago Alves de Oliveira

FUNDAMENTOS DE ARQUITETURAS DE COMPUTADORES MEMÓRIA PRINCIPAL CAPÍTULO 4. Cristina Boeres

ORGANIZAÇÃO DE COMPUTADORES CAPÍTULO4: MEMÓRIAPRINCIPAL

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

Organização e Arquitetura de Computadores I

Infra-estrutura Hardware

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

Memória Cache. Miguel Leitão, v

Otimização do desempenho (no h/w) Objectivo. Problemas: Estrutura do tema Avaliação de Desempenho (IA-32)

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

Prof. Frank Sill Torres DELT Escola de Engenharia UFMG

Aula 13: Memória Cache

Memórias Cache. Memória

MC722. Medidas. Instruções. Funções. Pilha. add $t0,$s1,$s2. slti rt,rs,const if (rs < const) rd=1; else rd=0;

Sistemas Digitais (SD) Memórias

Arquitetura e Organização de Computadores. Capítulo 5 Grande e Rápida: Explorando a Hierarquia de Memória

Memória Cache endereço de memória

Hierarquia de memória e a memória cache

Memória Cache. Aula 24

Organização de Computadores Memória. Professor: Francisco Ary

Transcrição:

Hierarquia de memória Capítulo 6, Secção.{3..} Caches Slides adaptados dos slides do professor Pedro Pereira Consultar slides originais no moodle Centro de Cálculo Instituto Superior de Engenharia de Lisboa João Pedro Patriarca (jpatri@cc.isel.ipl.pt)

Localidade Localidade espacial Ao aceder-se a um determinado endereço de memória é muito provável que se volte a aceder à memória com endereços próximos. Ex: instruções de um programa; variáveis locais mapeadas em memória. Localidade temporal Ao aceder-se a um determinado endereço de memória é provável voltarse a aceder ao mesmo endereço de memória num curto espaço de tempo uma ou mais vezes. Ex: instruções dentro de um ciclo; variáveis locais. bib: CSPP, cap. 6.{2} 2

Hierarquia de memória bib: CSPP, cap. 6.{3} Menor capacidade, mais rápidas e mais caras (por byte) Maior capacidade, mais lentas e mais baratas (por byte) L6: L5: L4: L3: L2: L1: L0: Reg CPU L1 cache (SRAM) L2 cache (SRAM) L3 cache (SRAM) Memória principal (DRAM) Armazenamento secundário local (discos locais) Armazenamento secundário remoto (sistema de ficheiros distribuídos, servidores Web) Registos do CPU guardam palavras obtidas da cache Cache L1 guarda linhas de cache obtidas da cache L2 Cache L2 guarda linhas de cache obtidas da cache L3 Cache L3 guarda linhas de cache obtidas da memória Memória principal guarda blocos obtidos do disco Disco guarda ficheiros obtidos remotamente 3

Memórias WL SRAM (Static RAM) 6 transístores por célula (bit) Estável Acesso rápido (10x ) Usada para caches (KBytes..MBytes) DRAM (Dynamic RAM) 1 transístor e 1 condensador por célula Custo baixo (100x ) Pequena dimensão Memória principal (GBytes) Disco rígido Custo ainda mais baixo Maior capacidade (TBytes) Pior tempo de acesso Gaps Track K Sectors (512 bytes, tipicamente) Fixed rotational rate BL Surface Spindle Q M 2 V DD M 4 M 5 M 6 Tracks M 1 M 3 M C Cylinder K Surface 0 Surface 1 Surface 2 Surface 3 Surface 4 Surface 5 Q Spindle BL Read/write heads Arm 4

Estrutura típica ALU CPU Register File? bytes 1 cycle L1 cache (SRAM) Code Intel Core i7 Não está apresentada a L3 cache 32+32 KB 4 cycles Data Bus interface L2 cache (SRAM) 256 KB 11 cycles System bus I/O bridge Memory bus 2 GB 160 cycles 60 ns Main Memory (DRAM) USB controller Graphics adapter I/O bus Host bus adaptor (SCSI/SATA) Expansion slots for other devices Moude Keyboard Monitor Disk drive Disk controller Disk 100 GB 8 ms 5

Localidade Localidade espacial Ao aceder-se a um determinado endereço de memória é muito provável que se volte a aceder à memória com endereços próximos. Ex: instruções de um programa; variáveis locais mapeadas em memória. Localidade temporal Ao aceder-se a um determinado endereço de memória é provável voltarse a aceder ao mesmo endereço de memória num curto espaço de tempo uma ou mais vezes. Ex: instruções dentro de um ciclo; variáveis locais. bib: CSPP, cap. 6.{2} 7

Conceito geral de uma cache Cache significa um dispositivo de armazenamento com menor capacidade de armazenamento, mas rápido, que actua como repositório de objectos guardados num dispositivo com maior capacidade de armazenamento, mas lento A transferência é sempre de 1 bloco de dimensão constante Diferentes pares na hierarquia podem transferir blocos com dimensões diferentes A estratégia de escrita pode ser diferente entre diferentes pares write-through write-back A estratégia de substituição de blocos pode diferir em cada cache na hierarquia bib: CSPP, cap. 6.{3} Reg CPU L1 cache (SRAM) L2 cache (SRAM) L3 cache (SRAM) Memória principal (DRAM) Armazenamento secundário local (discos locais) Armazenamento secundário remoto (sistema de ficheiros distribuídos, servidores Web) 8

2 N s 2 M s Conceito geral de uma cache - continuação Cache Hits (acesso rápido) Se os dados procurados estão presentes num dos blocos da cache 1. Os dados são lidos/escritos* apenas da/na cache Cache Misses (acesso lento) Se os dados procurados não estão presentes num dos blocos da cache 1. É seleccionado um bloco da cache para ser substituído 2. Se o bloco seleccionado foi alterado é escrito na memória principal (write-back) 3. Todo o bloco do byte pretendido é lido da memória principal 4. Os dados são lidos/escritos* apenas da/na cache * dependente da estratégia de escrita 16, 32 ou 64 bytes CPU 2 b bytes Cache Cache memory (SRAM) Cache 8 Cache 5 Cache 14 Cache 3 N < M Main memory (DRAM) Cache 0 Cache 1 Cache 2 Cache 3 Cache 4 Cache 5 Cache 6 Cache 7 Cache 8 Cache 9 Cache 10 Cache 11 Cache 12 Cache 13 Cache 14 Cache 15 9

S = 2 s sets E linhas por set Valid Dirty Organização da cache visão geral bib: CSPP, cap. 6.{4} Organização em linhas: Block: conjunto de bytes que são transferidos Tag: Identifica um bloco dentro do set Valid bit: bloco válido. Inicialmente, todas as linhas estão inválidas Set 0: t bits 16, 32 ou 64 bytes B = 2 b bytes 0 1 B-1 0 1 B-1 Dirty bit: bloco alterado. Falta actualizar este bloco na memória; este bit está presente nas caches que implementam a estratégia write-back Set 1: 0 1 B-1 0 1 B-1 v d Tag 0 1 B-1 CPU address: t=m-b-s bits m-1 s bits b bits 0 Set S-1: v d Tag 0 1 B-1 Tag Set index Block offset Dimensão da cache = S x E x B 11

Classes de caches função do número de linhas por Set Direct-Mapped Caches Uma linha por Set Set 0: E = 1 Set 1: Set S-1: Full Associative Caches Um único Set com todas as linhas Set 0: E = C/B Set Associative Caches CPU address: Vários Sets e várias linhas por Set t=m-b-s bits m-1 Tag s bits Set index b bits 0 Block offset Set 0: Set 1: Set S-1: 1 < E < C/B 12

Direct-Mapped cache Cada bloco da memória principal está associado a uma única linha da cache Address bits: Tag t=m-b-s bits m bits Index s bits offset b bits Main memory 4 GB (m = 32) Address: Cache memory 4 1 2 7 Tag Index offset Main memory 0 1 2 3 4 5 6 7 Um só comparador Económico e com acessos rápidos Cache miss se dois blocos usados têm o mesmo index (conflict miss) Set 0: Set 1: Set S-1: Cache size 16k lines (s = 14) = 512 KB t=m-b-s (t = 13) Block size 32 bytes (b = 5) Mux == Mux Hit / Miss 13

Fully Associative cache Um bloco da memória principal pode estar em qualquer linha da cache Address bits: Tag t=m-b bits m bits offset Main memory 4 GB (m = 32) Address: Tag Cache memory 3 5 0 7 offset Main memory 0 1 2 3 4 5 Um comparador por linha Mais lógica em cascata (maiores tempos de atraso) Usada em caches de pequena dimensão (TLBs) t=m-b (t = 27) == Block size 32 bytes (b = 5) Cache size 16k lines (s = 0) = 512 KB == == GS Enc Hit / Miss Mux 14

Set associative cache Cada bloco da memória principal está associado a uma das w linhas da cache Address bits: m bits Tag Index offset t=m-b-s bits s bits b bits Address: Tag Cache memory 4 2 1 5 Index offset Main memory 0 1 2 3 4 5 Main memory 4 GB (m = 32) Geralmente, com 4 ou 8 ways Reúne as vantagens dos anteriores Set 0: Set 1: Set S-1: Gasta mais memória (factor de multiplicação igual ao número de ways) para o mesmo número de sets Mux == Hit / Miss Mux Mux Mux Way 0 Way 1 GS Enc Mux == Block size 32 bytes (b = 5) t=m-b-s (t = 13) Cache size 16k lines (s = 14) * 2 way = 1 MB 15

Hierarquia de caches do Intel Core i7 Regs Core 0 Regs Core 3 L1 d-cache L1 c-cache L1 d-cache L1 c-cache L2 unified cache L2 unified cache Processor package L3 unified cache Cache type Access time (cycles) Main memory Cache size (C) Assoc. (W) Block size (B) L1 i-cache 4 32 KB 8 64 B 64 L1 d-cache 4 32 KB 8 64 B 64 L2 unified cache 11 256 KB 8 64 B 512 L3 unified cache 33-40 8 MB 16 64 B 8192 Sets (S) 16

Políticas de substituição Direct-mapped Não tem; sempre a mesma linha Set associative Uma linha vazia (sem validate) é sempre boa candidata Random: A escolha aleatória apresenta o menor custo (implementação e eficiência) Não considera princípios de localidade Políticas que consideram princípios de localidade Least Recently Used (LRU): escolhe a linha usada há mais tempo Least Frequently Used (LFU): escolhe a linha usada menos vezes dentro de uma janela temporal Ambas as políticas implicam mais hardware e tempo 17

Escritas na cache Na situação de write hit Cache write-through: actualiza o bloco escrito no nível inferior da hierarquia de memória de imediato Implementação simples A escrita do bloco no nível inferior é realizada em paralelo Potencia a existência de escritas inconsequentes Maior competição com o DMA para acesso ao bus Cache write-back: atrasa a actualização no nível inferior da hierarquia até que exista uma substituição do bloco escrito Elimina a existência de escritas desnecessárias Implementação mais complexa exigindo mais um bit de memória indicador de bloco escrito ou não (dirty bit) Na situação de write miss Aproximação write-allocate: carrega primeiro o bloco do nível inferior da hierarquia e só depois escreve na cache Explora a localidade espacial Tempo de miss mais elevado Aproximação no-write-allocate: escreve a palavra directamente no nível inferior da hierarquia saltando a cache 18

Parâmetros da cache e impacto na performance Métricas: Miss rate = #misses / #referências Hit rate = 1 miss rate Hit time = tempo de acesso a uma palavra na cache Inclui: selecção do Set; selecção da linha; e selecção da palavras Miss penalty = tempo adicional introduzido pelo miss Impacto da dimensão da cache Impacto da dimensão do bloco Impacto da associatividade Impacto da estratégia de write Potencia a redução de misses (miss rate) Aumento do hit time Explora a espacialidade do programa (hit rate) Aumento do tempo de transferência em caso de miss (miss penalty) Reduz conflict miss; potencia o aumento do hit rate Mais hardware (ex: mais bits por linha); aumento do hit time Aumento do miss penalty dada a complexidade associada à escolha de uma linha de substituição Na hierarquia de memória, o aumento da dimensão dos blocos a transferir promove a utilização da estratégia write-back (mais complexa) Actualmente, com a capacidade de empacotamento, todos os níveis de hierarquia usam a estratégia write-back 19

Programas exemplo Percurso num array unidimensional Percurso num array bidireccional 20

Percorrer um array unidimensional /* Função utilitária para a avaliação do desempenho da cache em diferentes cenários de acesso a memória (variação do stride) */ int flat_vec_sum(int stride, int len, int iterations) { } int i,j, sum = 0; assert(len <= N); for (i = 0, j = 0; j < iterations; i = (i+stride)%len, j++) sum += fv[i]; return sum; 21

Percorrer um array bidireccional int bi_vec_sum() { int ln, cl, sum = 0; for (ln = 0; ln < MAX_LINES; ln++) for (cl = 0; cl < MAX_COLUMNS; cl++) sum += bv[ln][cl]; return sum; } int ib_vec_sum() { int ln, cl, sum = 0; for (cl = 0; cl < MAX_COLUMNS; cl++) for (ln = 0; ln < MAX_LINES; ln++) sum += bv[ln][cl]; return sum; } Parecem iguais? 22