6 de Maio de 2005 1. Aula 16



Documentos relacionados
Memórias cache. Tópicos. João Canas Ferreira Tópicos de Arquitectura de Computadores. 1 Aspectos elementares

Hierarquia de Memória

Introdução à Informática. Alexandre Meslin

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

T1: T2: T3: T4: T5: T6: T7: T: P: TEÓRICA

Memórias Cache. Memória

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

Estrutura de um Computador

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

5 de Maio de Aula 15

Fundamentos de Arquitetura e Organização de Computadores

Arquitetura e Organização de Computadores

ELECTRÓNICA DE COMPUTADORES. Sumário

Aula 16: Memória Principal e Memória Virtual

Hierarquia de Memória

Aula 16: Memória Principal e Memória Virtual

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

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

Microprocessadores. Memórias

Memória Cache. Aula 24

Objetivos. Arquitetura x86. Evolução dos Microprocessadores com arquitetura x86. Universidade São Judas Tadeu. Introdução à Computação

Oganização e Arquitetura de Computadores

Arquitetura de Computadores

Projeto de Caches. Projeto de memórias cache (ii)

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

Tempo de processador desperdiçado a fazer nada. Processor register 1 clock cycle (0.5 2 GHz) $??? DRAM semiconductor memory ns $10 $20

Microcontroladores e Microprocessadores. Conversão de Bases Prof. Samuel Cavalcante

Circuitos Aritméticos

O Sistema de Computação

Prova Modelo. Nome: Número:

Arquitectura de Computadores II

Subsistema de Memória. Aleardo Manacero Jr.

Caminho de Dados e Controle. Prof. Leonardo Barreto Campos 1

Hierarquia de Memória

Prof a Andréa Schwertner Charão DELC/CT/UFSM

Arquitetura de Computadores Moderna

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

I. Considere os seguintes processadores A e B, ambos com arquitectura em pipeline, conforme ilustrado

Vírgula flutuante Aula 6

Data Path / Control Path Controle do MIPS

- Campus Salto. Disciplina: Sistemas de Arquivos Docente: Fernando Santorsula

Arquitectura de Computadores

Conteúdos: Debora, Edcarllos, livros! slides disponíveis!

Arquitectura de um Computador

Programação de Computadores I. Linguagem C Função

Sistema Operacional. Implementação de Processo e Threads. Prof. Dr. Márcio Andrey Teixeira Sistemas Operacionais

Microprocessadores. Família x86 - Evolução

Figura 8: modelo de Von Neumann

Informática Aplicada

Sobre Projeto no Nível RT: Bloco de controle: Bloco operativo:

alocação de custo têm que ser feita de maneira estimada e muitas vezes arbitrária (como o aluguel, a supervisão, as chefias, etc.

Construção de uma via de dados, abordagem monociclo, multiciclo e pipeline

Gerenciamento de Memória Minix 3.1.7

Memória 21/05/2010. Introdução. Hierarquia de Memória. Hierarquia de Memória. Arquitetura de Computadores

ORGANIZAÇÃO DE COMPUTADORES

Memórias cache. João Canas Ferreira. Abril de Porque são efectivas as memórias cache? Hierarquias de memória Caracterização do desempenho

Aula 09. Gerenciamento de Memória Virtual Paginação. Capítulo 10 PLT Pág Gerenciamento de Memória Virtual

Arquitectura de Computadores (ACom)

Placas Gráficas. Placas Gráficas. Placas Gráficas. Placas Gráficas. O que é? Para que serve? Resolução (cont.) Resolução

Organização e Arquitetura de Computadores I

Memórias cache: uma introdução

Hardware: Componentes Básicos. Sistema de Computador Pessoal. Anatomia de um Teclado. Estrutura do Computador. Arquitetura e Organização

Introdução. Software Básico Aula 3. Prof. Dr. Rogério Vargas.

Prof. Adilson Gonzaga. Interface com Displays

Resumo. l Hierarquia de Armazenamento l Discos Magnéticos l Mapeamento de Endereços l Tempos de Acesso l Exemplos l Referências

Prof. Frank Sill Torres DELT Escola de Engenharia UFMG

TOKEN RING & TOKEN BUS

Eng.º Domingos Salvador dos Santos.

Programa de ampliação e optimização do ecrã para alívio do cansaço visual. Guia de Referência

Arquitetura de Computadores - Módulos de E/S. por Helcio Wagner da Silva

Arquitetura de Computadores

Hierarquia de memória. Melhorando o desempenho

Arquitectura de Computadores

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

SISTEMAS DIGITAIS MEMÓRIAS E CIRCUITOS DE LÓGICA PROGRAMÁVEL

Inspeção de Qualidade

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

Memória. Gestão do espaço lógico Paginação Segmentação com paginação

Arquitetura de Computadores EL66C 1a. Prova - Gabarito 26/04/10

PROVA Duração da prova: 120 minutos

Periféricos de computadores

Introdução a Programação Aula 01

Faculdade Integrada do Ceará FIC Graduação em Redes de Computadores

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

Medidas de Desempenho do Processador

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

Memória Cache: Funcionamento

12 de Março de Aula 5

Componentes do Computador

Ficha de Unidade Curricular (FUC) de Arquitectura de Computadores

Linguagens de Programação:

Sistemas Operacionais Prof. Esp. André Luís Belini Bacharel em Sistemas de Informações MBA em Gestão Estratégica de Negócios Aula 03

Introdução a Banco de Dados. INTRODUÇÃO

Arquitectura interna de um computador

INFORMÁTICA PARA GESTÃO II Curso Superior de Gestão de Marketing

Entrada e Saída Transmissão Serial e Paralela

Linux e Computação Científica

Introdução aos Sistemas de Microprocessadores

UNIPAC Araguari FACAE - Faculdade de Ciências Administrativas e Exatas SISTEMAS DE INFORMAÇÃO

Transcrição:

6 de Maio de 2005 1 Caches II Aula 16

Estrutura desta aula Desempenho das caches Melhoria do desempenho das caches Redução da taxa de faltas Redução da penalização por faltas e caches multinível Redução do tempo de acesso à cache, com sucesso Ref: Hennessy e Pattersson, 5.3-5.7 6 de Maio de 2005 Arquitectura de Computadores 2004/05 2-Aula 16

Impacto sobre o ciclo de relógio I -Cache Miss Hit PC Dec Exec A B invalid Mem WB D Cache Hit MEM WB Miss 6 de Maio de 2005 Arquitectura de Computadores 2004/05 3-Aula 16

AMAT Tempo_Execução = Número_Instruções x Tempo_Ciclo x (CPI ideal + Stalls_Memória/Instr + Outros_Stalls/Instr) Stalls_Memória/Instr = Instruction Miss Rate x Instruction Miss Penalty + Loads/Inst x Load Miss Rate x Load Miss Penalty + Stores/Inst x Store Miss Rate x Store Miss Penalty Average Memory Access time (AMAT) = Hit Time + (Miss Rate x Miss Penalty) 6 de Maio de 2005 Arquitectura de Computadores 2004/05 4-Aula 16

Melhoria do desempenho da cache AMAT = Hit Time + (Miss Rate x Miss Penalty) Para melhorar o desempenho de uma cache (ou seja, para diminuir o AMAT) Reduzir a taxa de faltas ( Miss Rate ) Por exemplo, usando uma cache maior Reduzir a penalização por faltas ( Miss Penalty ) Por exemplo, usando uma cache L2 Diminuir o tempo de acesso à cache ( Hit Time ) A estratégia mais simples consiste em projectar a cache com a maior dimensão possível, sem aumentar o período de relógio e sem adicionar andares extra no pipeline Mas as decisões de projecto complicam-se nas CPUs com pipelines profundos e execução fora de ordem 6 de Maio de 2005 Arquitectura de Computadores 2004/05 5-Aula 16

Razões das faltas (recordemos) Faltas obrigatórias (cold start, primeira referência): primeiro acesso a um bloco Nada a fazer Faltas por capacidade reduzida A cache não pode conter todos os blocos a aceder pelo programa Solução: aumentar o tamanho da cache Falts por conflitos Múltiplos endereços de memória são mapeados no mesmo índice da cache Solução 1: aumentar o tamanho da cache Solução 2: aumentar o grau de associatividade Faltas por incoerência (invalidação): outros processos (por ex., I/O) actualizam o conteúdo da memória 6 de Maio de 2005 Arquitectura de Computadores 2004/05 6-Aula 16

Efeito dos parâmetros Primeira abordagem (à frente seremos mais específicos) Cache maior (+) reduz o número de faltas (-) o hit time pode aumentar Blocos maiores (+) localidade espacial reduz faltas obrigatórias e as faltas por capacidade reduzida (-) menos blocos aumenta o miss rate em faltas por conflito (-) blocos maiores podem aumentar a miss penalty Maior associatividade (+) reduz o número de faltas por conflito (até 4 a 8 vias) (-) pode aumentar o tempo de acesso 6 de Maio de 2005 Arquitectura de Computadores 2004/05 7-Aula 16

AMAT Exemplo (1) AMAT = Hit time + (Miss Rate x Miss Penalty) Miss penalty = tempo extra provocado pelas faltas 6 de Maio de 2005 Arquitectura de Computadores 2004/05 8-Aula 16

AMAT Exemplo (2) Hipótese 1 A máquina 1 tem um custo por hit = 1 ciclo de relógio e uma penalização por falta = 10 ciclos (11 ciclos no total por falta) A taxa de faltas num determinado programa é de 10% AMAT = Hit Time + (Miss Rate x Miss Penalty) AMAT = 1 + 0,1 x 10 = 2,0 Hipótese 2 A máquina 2 é igual à máquina 1 O programa tem 100 acessos à memória: 90 acertam, 10 falham 90 hits x 1 ciclo + 10 faltas x 11 ciclos = 200 ciclos AMAT = (Hit Rate x Hit Time) + (Miss Rate x Miss Time) AMAT = # ciclos / # acessos = 200 ciclos/100 acessos = 2,0 6 de Maio de 2005 Arquitectura de Computadores 2004/05 9-Aula 16

AMAT Outro exemplo (1) São dadas 2 hipóteses de projecto Uma máquina com 2 caches separadas, uma de dados e outra de instruções, cada uma com 16 kbytes Uma máquina com uma cache única, de 32 kbytes Admitir que um hit toma 1 ciclo de relógio uma falta precisa de 50 ciclos de relógio um LOAD ou um STORE necessitam de mais 1 ciclo de relógio na cache única Porquê? Porque a cache única apenas possui um porto de entrada/saída, insuficiente para satisfazer pedidos simultâneos de LOAD e de STORE 75% das referências à memória são fetches de instruções Qual a máquina com melhor desempenho? 6 de Maio de 2005 Arquitectura de Computadores 2004/05 10 - Aula 16

AMAT Outro exemplo (2) Vamos utilizar os resultados de simulações, de acordo com o benchmark SPEC92, para caches com mapeamento directo blocos com 32 bytes 6 de Maio de 2005 Arquitectura de Computadores 2004/05 11 - Aula 16

AMAT Outro exemplo (3) Para as caches separadas Taxa de faltas = 75% x 0,64% + 25% x 6,47% = 2,1% Para a cache única (directamente da tabela) Taxa de faltas = 1,99% Se a optimização for baseada na taxa de faltas, a cache única de 32 kbytes é mais vantajosa 6 de Maio de 2005 Arquitectura de Computadores 2004/05 12 - Aula 16

AMAT Outro exemplo (4) Consideremos agora a optimização do AMAT Penalização em ciclos = % instr. x AMAT instr. + % dados x AMAT dados Para as caches separadas Penalização = 75% x (1+0,64% x 50) + 25% x (1+6.47% x 50) = 2,05 ciclos de relógio Para a cache única Penalização = 75% x (1+1,99% x 50) + 25% x (1+1+1,99% x 50) = 2,24 ciclos de relógio Se a optimização for baseada nas penalizações em ciclos de relógio (optimização do tempo médio de acesso à memória, AMAT), as caches separadas de 16 kbytes são mais vantajosas 6 de Maio de 2005 Arquitectura de Computadores 2004/05 13 - Aula 16

Ainda outro exemplo (1) Qual o impacto no desempenho (tempo de CPU) pela inclusão da seguinte cache? 50 ciclos de penalização por cada falta As instruções tomam, em média, 2 ciclos (excluindo stalls de memória, que são considerados à parte) Taxa de faltas = 2% 1,33 acessos em média à memória por instrução Relembrar que: Tempo de CPU = # instr x (CPI exec + stalls memória/instr) x duração do ciclo de relógio 6 de Maio de 2005 Arquitectura de Computadores 2004/05 14 - Aula 16

Ainda outro exemplo (2) Qual o impacto...? Tempo de CPU = # instr x (CPI exec + stalls memória/instr) x duração do ciclo = # instr x (2,0 + 0,02 x 1,33 x 50) x duração ciclo = # instr x 3,33x duração ciclo Duas conlusões importantes Quanto menor o CPI exec, maior é o impacto relativo devido às penalizações por faltas Comparando 2 máquinas com sistemas de memória idênticos, a máquina com maior freq. de relógio necessita de mais ciclos por falta e, portanto, t a parte do CPI devido aos acessos à memória é proprocionalmente maior 6 de Maio de 2005 Arquitectura de Computadores 2004/05 15 - Aula 16

Melhoria do desempenho Três formas de optimização O1: redução da taxa de faltas O2: redução da penalização por faltas O3: redução do tempo de acesso à cache, com sucesso 6 de Maio de 2005 Arquitectura de Computadores 2004/05 16 - Aula 16

Parâmetros de desempenho A organização da cache influencia significativamente o desempenho do processador Parâmetros a ter em conta Tamanho da cache (# bytes na cache) Tamanho dos blocos (# bytes por bloco) Grau de associatividade (# linhas por índice) Largura de banda (# bytes devolvidos à CPU por ciclo) Write-through ou Write-back Partição da cache: caches separadas para instruções e dados ou cache única Tempo de acesso à cache Potência dissipada 6 de Maio de 2005 Arquitectura de Computadores 2004/05 17 - Aula 16

O1: Redução da taxa de faltas (1) Quais são as taxas de faltas encontradas actualmente? Variam muito com a aplicação Usando os dados do SPEC92 anteriores As taxas de faltas da cache-i menores do que 5% e, por vezes, menores do que 1% As taxas de faltas da cache-d podem chegar a 25% O maior problema reside na cache-d 6 de Maio de 2005 Arquitectura de Computadores 2004/05 18 - Aula 16

O1: Redução da taxa de faltas (1) Quais são as taxas de faltas encontradas actualmente? Mas o SPEC92 não é representtivo de muitas aplicações Por exemplo, para aplicações comerciais As bases de dados têm taxas de faltas na cache-i que chegam a 20% (16 kb, mapeamento directo) As taxas de faltas da cache-d podem chegar a 25% O maior problema reside na cache-d 6 de Maio de 2005 Arquitectura de Computadores 2004/05 19 - Aula 16

O1: Redução da taxa de faltas (2) Razões porque ocorrem faltas Obrigatórias (cold start, primeira referência): primeiro acesso a um bloco Nada a fazer Nota: Se se correrem milhões de instruções, as Faltas Obrigatórias tornam-se insignificantes Falta de capacidade: A cache não pode conter todos os blocos a aceder pelo programa Solução: aumentar o tamanho da cache Conflitos (colisão): Múltiplos endereços de memória são mapeados no mesmo índice da cache Solução 1: aumentar o tamanho da cache Solução 2: aumentar o grau de associatividade Incoerência (invalidação): outros processos (por ex., I/O) actualizam o conteúdo da memória 6 de Maio de 2005 Arquitectura de Computadores 2004/05 20 - Aula 16

Taxas de faltas 6 de Maio de 2005 Arquitectura de Computadores 2004/05 21 - Aula 16

O1: Redução da taxa de faltas (3) Técnicas para redução da taxa de faltas T1: Blocos maiores T2: Aumentar o grau de associatividade T3: Utilização de caches vítimas T4: Prefetching por hardware T5: Prefetching pelo compilador 6 de Maio de 2005 Arquitectura de Computadores 2004/05 22 - Aula 16

O1-T1: Blocos maiores (1) Blocos maiores reduzem o número de faltas obrigatórias porque mais dados são enviados para a cache a cada falta Os programas têm, geralmente, uma elevada localidade espacial Infelizmente, blocos maiores podem criar problemas Mais dados são retirados da cache Pode aumentar a taxa de faltas Por outro lado, blocos maiores aumentam a penalização por faltas Levam mais ciclos para preencher a cache 6 de Maio de 2005 Arquitectura de Computadores 2004/05 23 - Aula 16

O1-T1: Blocos maiores (2) A partir de certa altura os blocos maiores deixam de melhorar o desempenho 6 de Maio de 2005 Arquitectura de Computadores 2004/05 24 - Aula 16

O1-T1: Blocos maiores (3) Para caches pequenas, o aumento do tamanho dos blocos aumenta a taxa de faltas 25% Miss Rate 20% 15% 10% 5% 0% 1K 4K 16K 64K 256K 16 32 64 128 256 Block Size (bytes) 6 de Maio de 2005 Arquitectura de Computadores 2004/05 25 - Aula 16

Mínimos a vermelho AMAT 6 de Maio de 2005 Arquitectura de Computadores 2004/05 26 - Aula 16

O1-T2: Maior associatividade d (1) Maiores graus de associatividade reduzem as faltas por conflitos Muitas vezes, as caches associativas de 8 vias são quase tão boas como as caches completamente associativas O aumento da associatividade pode fazer aumentar o tempo de acesso Mais lógica nas comparações Muitas vezes as caches associativas não são utilizadas no nível L1, onde o tempo de acesso é mais importante Em vez disso, são usadas num nível mais baixo onde o tempo de acesso é menos importante 6 de Maio de 2005 Arquitectura de Computadores 2004/05 27 - Aula 16

O1-T2: Maior associatividade d (2) Exemplo Tam. cache Associatividade (kb) 1-via 2-vias 4-vias 8-vias 1 2.33 2.15 2.07 2.01 2 198 1.98 186 1.86 176 1.76 168 1.68 4 1.72 1.67 1.61 1.53 8 1.46 1.48 1.47 1.43 16 129 1.29 132 1.32 132 1.32 132 1.32 32 1.20 1.24 1.25 1.27 64 1.14 1.20 1.21 1.23 128 1.10 1.17 1.18 1.20 Vermelho significa que o A.M.A.T. não melhora com o aumento do grau de associatividade id d 6 de Maio de 2005 Arquitectura de Computadores 2004/05 28 - Aula 16

Exemplo de cache associativa de 2 vias com 8 kbytes (dados) 6 de Maio de 2005 Arquitectura de Computadores 2004/05 29 - Aula 16

O1-T3: Caches vítimas Pequena cache que contém os blocos descartados mais recentemente 1-5 blocos No caso de uma falta, a cache vítima é lida Se o bloco estiver presente na cache vítima, é colocado de volta na cache primária Eficácia? Muito elevada para as caches com mapeamento directo Uma cache vítima com 4 entradas pode remover 20% a 95% das faltas devidas a conflitos numa cache com MD de 4kByte Usada nas máquinas Alpha e HP 6 de Maio de 2005 Arquitectura de Computadores 2004/05 30 - Aula 16

O1-T4: Prefetching por hardware Numa falta, faz o fetch do bloco em falta e de alguns blocos que se seguem Os blocos que são Prefetched não são colocados na cache, mas antes num tampão especial designado por Prefetch Buffer Muito eficaz para rajadas de instruções Alpha 21064 faz o fetch de dois blocos no caso de uma falta (o segundo bloco é um prefetch) Alpha 21164 tem um buffer de prefetch com 6 entradas na ligação à cache de Nível 2 (L2) Também é eficaz com blocos de dados O prefetching depende da existência de uma elevada largura de banda no acesso entre o Prefetch Buffer e a memória 6 de Maio de 2005 Arquitectura de Computadores 2004/05 31 - Aula 16

O1-T5: Prefetching pelo compilador O compilador faz o prefetching de instruções retiradas do programa Por vezes o compilador tem uma boa ideia do que fazer em matéria de prefetch (como e quando) O prefetching possibilita que o compilador se engane, sem que desse facto resulte um comportamento incorrecto para o programa Algumas arquitecturas incluem instruções de prefetch Exemplo: for (i=0; i < 1000; i++){ a[i] = b[i] * c } 6 de Maio de 2005 Arquitectura de Computadores 2004/05 32 - Aula 16

O1-T5: Prefetching pelo compilador O compilador faz for (i=0; i < 1000; i++){ Prefetch a[i+1] Prefetch b[i+1] a[i] = b[i] * c } Quantas faltas com prefetching? Referências iniciais a a[0], b[0] e c Todas as outras referências são prefetched 1000 referências a a[i], b[i] e c 3 faltas / 3000 referências taxa de faltas = 0,1% 6 de Maio de 2005 Arquitectura de Computadores 2004/05 33 - Aula 16

Melhoria do desempenho Três formas de optimização O1: redução da taxa de faltas O2: redução da penalização por faltas O3: redução do tempo de acesso à cache, com sucesso 6 de Maio de 2005 Arquitectura de Computadores 2004/05 34 - Aula 16

O2: Redução da penalização por faltas Há várias técnicas para redução da penalização por faltas Vamos apenas enunciar uma delas, que utiliza Caches multi-nível 6 de Maio de 2005 Arquitectura de Computadores 2004/05 35 - Aula 16

O2: Caches multi-nível l (1) O ideal era que a cache tivesse a dimensão da Memória Principal e o tempo de acesso dos registos das Register Files Impossível porque ao aumentar a capacidade da cache aumenta-se também o tempo de acesso Ideia base: acrescentar níveis intermédios de caches entre a cache original e a Memória Principal O primeiro nível (L1), mais próximo do processador, leva um ciclo de relógio no acesso ritmo da CPU O segundo nível (L2) tipicamente leva <10 ciclos de relógio O terceiro nível é a própria Memória Principal ou então uma cache de nível 3 (L3), com 10 a 100 ciclos de relógio para acesso Reduz o tempo de penalização por falta 6 de Maio de 2005 Arquitectura de Computadores 2004/05 36 - Aula 16

O2: Caches multi-nível l (2) AMAT = Hit_time L1 + Miss Rate L1 * Miss Penalty L1 = = Hit_time time L1 + Miss Rate L1 * (Hit Time L2 + Miss Rate L2 * Miss Penalty L2) A cache L2 pode ter um maior tempo de acesso Pode ser maior Pode ser mais associativa Pode ter linhas (blocos) maiores 6 de Maio de 2005 Arquitectura de Computadores 2004/05 37 - Aula 16

O2: Caches multi-nível l (3) A cache L2 deve ter uma capacidade maior, porque isso reduz o tempo de penalização por falta Reduz-se a taxa de faltas local em L2 mesmo que à custa do tempo de acesso com sucesso As caches L2 têm um maior grau de associatividade que as L1 L2: Intel Pentium4 é associativa com 8 vias e AMD Athlon é associativa com 16 vias Importante saber se os dados (blocos) presentes em L1 também estão presentes em L2 O natural é que estejam porque resolve o problema da consistência princípio da inclusão multi-nível 6 de Maio de 2005 Arquitectura de Computadores 2004/05 38 - Aula 16

O2: Caches multi-nível l (4) Como normalmente L2» L1 blocos de L2 > blocos de L1 para explorar a localidade espacial a inclusão neste caso obriga a mecanismos mais complicados de invalidação de blocos em L1 e pode aumentar a taxa de faltas em L1 Ex: cache do Intel Pentium4: L1 de 8kB e blocos de 64-bytes; L2 unificada de 512kB e blocos de 128-bytes E se L2 não é muito maior que L1? Faz sentido usar espaço de L2 como cópia de L1? Pi Princípio íi da exclusão multi-nível l os blocos presentes em L1 nunca estão presentes em L2 Uma falta em L1 resulta numa troca de blocos entre L1 e L2, em vez da substituição de um bloco em L1 por um bloco em L2 Ex: cache do AMD Athlon: L1 de 64kB e L2 unificada de 256kB/512kB, ambas com blocos de 64-bytes 6 de Maio de 2005 Arquitectura de Computadores 2004/05 39 - Aula 16

O2: Caches multi-nível l (5) Deve-se ter uma cache de instruções separada da cache de dados? O processador pode estar simultaneamente a aceder a palavra de instrução e de dados (LD/ST) conflito estrutural Caches separadas permitem optimizar individualmente Capacidade, dimensão do bloco, organização (associatividade) As faltas por conflitos reduzem-se também em caches separadas Reduz-se a taxa de faltas Caches separadas têm espaço fixo para cada um dos dois tipos (instruções e dados) d Na prática os processadores geralmente usam: Caches L1 separadas para dados e instruções Cache L2 unificada para dados e instruções 6 de Maio de 2005 Arquitectura de Computadores 2004/05 40 - Aula 16

O2: Caches multi-nível l (6) 6 de Maio de 2005 Arquitectura de Computadores 2004/05 41 - Aula 16

E a memória? Considere a seguinte memória 1 ciclo para enviar endereço 6 ciclos para aceder à palavra 1 ciclo para enviar a palavra para a CPU/cache barramento entre a cache e a memória com 1 palavra de capacidade d Qual é a penalização por falta para uma linha (bloco) de cache com 4 palavras? (1 ciclo + 6 ciclos + 1 ciclo) * 4 palavras = 32 ciclos Como melhorar esta penalização? 6 de Maio de 2005 Arquitectura de Computadores 2004/05 42 - Aula 16

Memória mais larga Tornar a memória mais larga Ler/escrever 2 palavras em vez de 1 de cada vez Penalização neste caso (1 ciclo + 6 ciclos + 1 ciclo) * 2 palavras duplas = 16 ciclos/bloco da cache 6 de Maio de 2005 Arquitectura de Computadores 2004/05 43 - Aula 16

Alargamento da memória Larga: Interleaved: CPU/Mux 1 palavra; CPU, Cache, Barramento 1 Mux/Cache, palavra: Memória N Módulos Barramento, Memória, (4 Bancos); exemplo: word N palavras (Alpha: 64 interleaved Simples: bits & 256 bits) CPU, Cache, Barramento, Memória, mesma largura (32 bits) 6 de Maio de 2005 Arquitectura de Computadores 2004/05 44 - Aula 16

Interleaving (4 vias) Sem Interleaving: ng CPU Memory D1 disponível Começa Accesso a D1 Com Interleaving de 4 vias: Banco 0 Accesso Accesso Banco 1 Accesso Banco 2 Começa Accesso a D2 CPU Accesso Banco 3 Podemos aceder ao Banco 0 outra vez Memory Bank 0 Memory Bank 1 Memory Bank 2 Memory Bank 3 6 de Maio de 2005 Arquitectura de Computadores 2004/05 45 - Aula 16

Exemplo Modelo que serve de exemplo 1 ciclo para enviar endereço, 10 ciclos para tempo de acesso por palavra 1 ciclo para receber/enviar uma palavra 1 bloco da cache = 4 palavras Simples. = 4 x (1+10+1) 10 1) = 48 ciclos de miss penalty Larga. = 1 + 10 + 1 = 12 Interleaved = 1 + 10 + 1x4 = 15 endereço 0 4 8 12 endereço 1 5 9 13 endereço 2 6 10 14 endereço 3 7 11 15 Banco 0 Banco 1 Banco 2 Banco 3 6 de Maio de 2005 Arquitectura de Computadores 2004/05 46 - Aula 16

Memória larga vs Interleaved Memória larga Custo associado à ligação larga Precisa de um mux entra a cache e a CPU Memória mais larga mais dispendiosa Memória interleaved Envia endereço a vários bancos em simultâneo Queremos número de bancos >= número de ciclos de relógio necessários para aceder a uma palavra num banco À medida que o tamanho dos circuitos integrados de memória aumenta, torna-se mais dispendioso fazer o interleaving, para uma dada dimensão de Memória Difícil expandir o tamanho da memória em pequenas quantidades Pode não funcionar bem para acessos não sequenciais 6 de Maio de 2005 Arquitectura de Computadores 2004/05 47 - Aula 16

Sumário: níveis hierárquicos 6 de Maio de 2005 Arquitectura de Computadores 2004/05 48 - Aula 16

Pó Próxima aula Memória virtual 6 de Maio de 2005 Arquitectura de Computadores 2004/05 49 - Aula 16