MAC0412 - Organização de Computadores André Jucovsky Bianchi, Cauê Haucke Porta Guerra, Eduardo Menezes, Leandro Moraes, Roberto Piassi Passos Bodo, Marcio Masaki Tomiyoshi, Omar Mahmoud Abou Ajoue, Otavio Nascimento 5 de dezembro de 2008
1 A arquitetura de Von Neumann O problema do gargalo de memória 2 de Software METRIC Técnicas com laços de Hardware Impulse Hardware Performance Monitors 3
Nosso tema inicial Avoiding the Memory Bottleneck through Structured Arrays, Michael J. Flynn
Nosso tema inicial Avoiding the Memory Bottleneck through Structured Arrays, Michael J. Flynn Nosso tema real Gargalo de memória: problema e soluções
A arquitetura de Von Neumann O problema do gargalo de memória Outline 1 A arquitetura de Von Neumann O problema do gargalo de memória 2 de Software METRIC Técnicas com laços de Hardware Impulse Hardware Performance Monitors 3
A arquitetura de Von Neumann O problema do gargalo de memória A arquitetura de Von Neumann
A arquitetura de Von Neumann O problema do gargalo de memória Níveis de memória
A arquitetura de Von Neumann O problema do gargalo de memória Memória compartilhada
A arquitetura de Von Neumann O problema do gargalo de memória Memória distribuída
A arquitetura de Von Neumann O problema do gargalo de memória Outline 1 A arquitetura de Von Neumann O problema do gargalo de memória 2 de Software METRIC Técnicas com laços de Hardware Impulse Hardware Performance Monitors 3
A arquitetura de Von Neumann O problema do gargalo de memória Separação entre unidade lógica e memória principal Os componentes têm características diferentes Processador: rapidez nas contas. Memória: capacidade de armazenamento, espaço físico e distância da unidade lógica.
A arquitetura de Von Neumann O problema do gargalo de memória Separação entre unidade lógica e memória principal Os componentes têm características diferentes Processador: rapidez nas contas. Memória: capacidade de armazenamento, espaço físico e distância da unidade lógica. E portanto têm necessidades diferentes Processador: transistores rápidos aquecem e precisam de camadas de metal para dissipação de calor. Memória: para encaixar mais memória em menos espaço utiliza-se camadas de siĺıcio.
A arquitetura de Von Neumann O problema do gargalo de memória Separação entre unidade lógica e memória principal O invólucro também pode ser diferente: Processador Invólucros que dissipam maior potência (5 a 50 watts). Centenas de pinos para comunicação com a memória externa.
A arquitetura de Von Neumann O problema do gargalo de memória Separação entre unidade lógica e memória principal O invólucro também pode ser diferente: Processador Invólucros que dissipam maior potência (5 a 50 watts). Centenas de pinos para comunicação com a memória externa. Memória Invólucros mais baratos que dissipam menor potência (1 watt). Apenas algumas dúzias de pinos.
A arquitetura de Von Neumann O problema do gargalo de memória Separação entre unidade lógica e memória principal O invólucro também pode ser diferente: Processador Memória Invólucros que dissipam maior potência (5 a 50 watts). Centenas de pinos para comunicação com a memória externa. Invólucros mais baratos que dissipam menor potência (1 watt). Apenas algumas dúzias de pinos. Além do preço, invólucros diferentes tornam o número de chips de memória independente do número de processadores.
A arquitetura de Von Neumann O problema do gargalo de memória O problema A performance dos processadores cresce cerca de 60% ao ano. Já a das memórias, cresce cerca de apenas 10% ao ano.
A arquitetura de Von Neumann O problema do gargalo de memória O problema A performance dos processadores cresce cerca de 60% ao ano. Já a das memórias, cresce cerca de apenas 10% ao ano.
de Software de Hardware Outline 1 A arquitetura de Von Neumann O problema do gargalo de memória 2 de Software METRIC Técnicas com laços de Hardware Impulse Hardware Performance Monitors 3
de Software de Hardware Por que METRIC?
de Software de Hardware O que é?
de Software de Hardware O que é? Dynamic Binary Rewriting
de Software de Hardware Como funciona?
de Software de Hardware Como funciona? instrumentação
de Software de Hardware Como funciona? instrumentação geração e compressão de pontos da aplicação
de Software de Hardware Como funciona? instrumentação geração e compressão de pontos da aplicação simulação incremental do cache
de Software de Hardware
de Software de Hardware Outline 1 A arquitetura de Von Neumann O problema do gargalo de memória 2 de Software METRIC Técnicas com laços de Hardware Impulse Hardware Performance Monitors 3
de Software de Hardware Motivação e história
de Software de Hardware O que é?
de Software de Hardware O que é? Como funciona
de Software de Hardware Outline 1 A arquitetura de Von Neumann O problema do gargalo de memória 2 de Software METRIC Técnicas com laços de Hardware Impulse Hardware Performance Monitors 3
de Software de Hardware Impulse
de Software de Hardware Motivação Grau de localidade de dados baixo em certos tipos de aplicações. Exemplos: CAD; Processamento de sinais; Matrizes esparsas; Banco de dados...
de Software de Hardware Problema
de Software de Hardware Solução
de Software de Hardware Hardware Shadow addresses - endereço não utilizado Assembly Buffer - memória SRAM Shadow descriptor - descrição do remapeamento AddrCalc - cálculo das posições dos dados Memory Controller Translation Lookaside Buffer - endereço físico
de Software de Hardware Hardware Possível problema Camada adicional nos acessos à memória aumentam a latência e diminuem o desempenho.
de Software de Hardware Hardware Possível problema Camada adicional nos acessos à memória aumentam a latência e diminuem o desempenho. Solução Adicionar buffers para realizar prefetching.
de Software de Hardware Resultados Ganhos de 67% a até 449% no tempo de execução! Aumento da taxa de acertos no cache L1. Diminuição na taxa de erros no TLB.
de Software de Hardware Nem tudo são flores... Precisa de suporte do SO; Ainda exige intervenção do programador; Controladoras de memória atuais integradas às CPUs; Otimização focada em programas que não possuam localidade de dados.
de Software de Hardware Outline 1 A arquitetura de Von Neumann O problema do gargalo de memória 2 de Software METRIC Técnicas com laços de Hardware Impulse Hardware Performance Monitors 3
de Software de Hardware Cache Miss
de Software de Hardware Velocidade Processador Velocidade Acesso a Memória Principal Melhorar eficiência de uma aplicação Fazer uso efetivo do cache Informações a nível de código sobre estruturas de dados Otimizando as estruturas de dados : Diminuir o número de Cache Misses provocados pelo acesso a elas Ferramentas: Monitores de performance no hardware
de Software de Hardware Análise de Cache Miss Técnicas Amostragem Busca n-caminhos (n-way) Objetivo: Ranquear estruturas de dados que mais causam cache misses.
de Software de Hardware Técnica de Amostragem Associa um contador a cada objeto, que esta na memória, de uma determinada aplicação Interrupção é gerada após um certo número de cache misses Incrementa o contador do objeto responsável pelo cache miss a cada interrupção
de Software de Hardware Técnica de Busca: n-way Divide a região de interesse da memória em n partes Associa a cada uma um contador de cache miss Coloca as n partes em uma fila de prioridade Após um determinado tempo, retira da fila a região com maior porcentagem Esta região é dividida em n partes e estas partes são colocadas na fila de prioridade Termina quando a região do topo da fila representar um único objeto
de Software de Hardware Simulando uma busca 2-way
de Software de Hardware Simulando uma busca 2-way
de Software de Hardware Simulando uma busca 2-way
de Software de Hardware Simulando uma busca 2-way
de Software de Hardware Simulando uma busca 2-way
de Software de Hardware Simulando uma busca 2-way
de Software de Hardware Simulando uma busca 2-way
de Software de Hardware Simulando uma busca 2-way
de Software de Hardware Simulando uma busca 2-way
de Software de Hardware Simulando uma busca 2-way
de Software de Hardware Simulando uma busca 2-way
de Software de Hardware Busca n-way: Problemas e Problema: Objeto dividido em mais de uma região
de Software de Hardware Busca n-way: Problemas e Problema: Objeto dividido em mais de uma região Solução: Ajustar o tamanho de cada região para que um objeto não ultrapasse suas fronteiras
de Software de Hardware Busca n-way: Problemas e Problema: Objeto dividido em mais de uma região Solução: Ajustar o tamanho de cada região para que um objeto não ultrapasse suas fronteiras Problema: Programas que possuem padrões de acesso diferentes ao longo do tempo
de Software de Hardware Busca n-way: Problemas e Problema: Objeto dividido em mais de uma região Solução: Ajustar o tamanho de cada região para que um objeto não ultrapasse suas fronteiras Problema: Programas que possuem padrões de acesso diferentes ao longo do tempo Solução: Não excluir imediatamente uma região que teve zero cache misses.
de Software de Hardware Simulador Ambiente para execução dos programas a serem testados Ambiente para execução das Ferramentas de Análise Gera interrupção depois que um certo número de Cache Misses ocorreram Identifica o endereço relacionado ao último cache miss Possibilita limitar um contador de cache miss para uma determinada região da memória
de Software de Hardware Experimentos As seguintes aplicações foram utilizadas como objetos de análise: tomcatv, su2cor, applu, swim, mgrid, compress e ijpeg (aplicações do SPEC95 benchmark suite) O método de Amostragem foi executado com uma frequência de 1 em 50.000 Para o algoritmo de busca, será realizado a busca 10-way.
de Software de Hardware Resultados
Conclusões As técnicas não atacam o problema na fonte (lembram do gráfico?).
Conclusões As técnicas não atacam o problema na fonte (lembram do gráfico?). Compromisso entre latência banda. Novo problema: congestionamento de banda.
Conclusões As técnicas não atacam o problema na fonte (lembram do gráfico?). Compromisso entre latência banda. Novo problema: congestionamento de banda. Memória e o processador num mesmo pacote?
Conclusões As técnicas não atacam o problema na fonte (lembram do gráfico?). Compromisso entre latência banda. Novo problema: congestionamento de banda. Memória e o processador num mesmo pacote? Computação paralela.