Arquitetura Avançada de Computadores
Sponsored Links
This presentation is the property of its rightful owner.
1 / 121

Arquitetura Avançada de Computadores PowerPoint PPT Presentation


  • 44 Views
  • Uploaded on
  • Presentation posted in: General

Arquitetura Avançada de Computadores. Prof. Felipe Ferreira de Oliveira [email protected] PGD - EMENTA.

Download Presentation

Arquitetura Avançada de Computadores

An Image/Link below is provided (as is) to download presentation

Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.


- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -

Presentation Transcript


Arquitetura Avançada de Computadores

  • Prof. Felipe Ferreira de Oliveira

  • [email protected]


PGD - EMENTA

  • Introdução a arquitetura de Computadores; Pipelining; Paralelismo a nivel de instrução; Multiprocessadores; Paralelismo a nível de thread; Hierarquia de Memória; Sistemas de armazenamento; Tendências atuais; Hardware reconfigurável;


PGD - OBJETIVOS

  • Apresentar aos alunos conceitos avançados de arquitetura e organização de computadores de modo a aprofundar o conhecimento já estabelecido, principalmente nas tecnologias mais recentes.


PGD – CONTEÚDO PROGRAMÁTICO

  • Introdução a arquitetura de Computadores

    • Introdução

    • Tipos de Computadores

    • Tendências

    • Análises quantitativas

  • Pipelining

    • Introdução

    • Pipeline Hazards

    • Como o pipeline é implementado?


PGD – CONTEÚDO PROGRAMÁTICO

  • Paralelismo a nível de instrução

    • Conceitos

    • Técnicas de compilador

    • Redução de custos com predição

    • Agendamento dinâmico

    • Especulação baseada em Hardware

  • Limites de paralelismo a nivel de instrução

    • Introdução

    • Estudo das limitações

    • Especulação de hardware x software

    • Multithreading


PGD – CONTEÚDO PROGRAMÁTICO

  • Multiprocessadores e paralelismo a nível de threads

    • Introdução

    • Arquitetura de memória compartilhada

    • Memória compartilhada distribuída

    • Sincronização

    • Consistência de dados

  • Hierarquia de memória

    • Introdução

    • Otimização de memória cache

    • Proteção: Memória virtual e Máquinas virtuais


PGD – CONTEÚDO PROGRAMÁTICO

  • Sistemas de armazenamento

    • Introdução

    • Tópicos avançados em armazenamento em disco

    • Definições e exemplos de possíveis problemas

    • Estatísticas de perfomance de dispositivos de I/O

  • Tendências atuais e Hardware reconfiguráveis


PGD – Metodologia e Avaliações

  • Aulas Expositivas através de slides

  • Provas escritas

  • Trabalhos e Seminários


PGD - BIBLIOGRAFIA

  • Computer Architecture – a quatitative aproach. John L. Hennessy and David A. Patterson. 4ª ed.

  • Arquitetura e Organização de Computadores. William Stalling. 5ª ed.

  • Organização Estruturada de Computadores. Andrew S. Tanenbaum. 5ª ed.

  • Internet

  • Textos distribuídos pelo professor


Introdução

  • Aumentando-se a velocidade do clock, aumenta-se o desempenho do sistema

  • Einsten definiu o limite de velocidade (c=3x10^8 m/s). No fio de cobre o elétron viaja com velocidade igual a (2/3) * c

  • Velocidade do elétron em um fio de cobre é de aproximadamente 20 cm/ns


Introdução

  • Gargalo de von Neumann

    • A estrutura tradicional de um computador com uma única CPU que envia requisições sequenciais através de um barramento para uma memória que responde uma requisição por vez tornou-se conhecida como gargalo de von Neumann.


Introdução

  • Novas aplicações foram surgindo, exigindo cada vez mais desempenho dos sistemas de computadores. Como aumentar o desempenho, considerando que incremento via hardware já está saturado?

  • PARALELISMO !!!!!!


Introdução

  • Paralelismo

    • Processadores

    • Memória

    • Computadores

    • Instruções (pipeline)

    • Cache

    • ULAs


Introdução

  • Níveis de paralelismo

    • Paralelismo a nivel de instrução

    • Várias linhas de execução em um mesmo processador

    • Várias linhas de execução em diferentes processadores (dual, quad core)

    • Computadores paralelos interconectados com redes de alta velocidade

    • Cluster de Computadores

    • Computadores na internet


Conceitos

  • Granularidade

    • Alta granularidade: execução de grandes porções de software em paralelo com pouca ou nenhuma comunicação entre elas

    • Baixa granularidade: partes do computador trabalham juntas para resolver mesmo problema


Conceitos

  • Acoplamento

    • Fracamente acoplado: Sistemas com um número pequeno de CPUs grandes independentes que possuem conexões de baixa velocidade entre as CPUs

    • Fortemente acoplado: Componentes geralmente pequenos, muito próximos e frequentemente se interagem através de redes de comunicação de alta velocidade

      Geralmente um sistema fracamente acoplado (hardware) é de alta granularidade (software) e vice-versa


Conceitos

  • SISD (Single Instruction Single Data): Um único processador executa uma única sequencia de instruções, usando dados armazenados em uma única memória. Sistemas uniprocessadores.

  • SIMD (Single Instrucion Multiple Data): Uma única instrução de máquina controla a execução simultânea de um certo número de elementos de processamento em passo de execução. Cada instrução é executada sobre um conjunto de dados diferentes. Processadores matriciais e vetoriais.


Conceitos

  • MISD (Multiple Instruction Single Data): uma sequencia de dados é transmitida para um conjunto de processadores, cada um dos quais executa uma sequencia de instruções diferentes. Não existe.

  • MIMD (Multiple Instruction Multiple Data): um conjunto de processadores executa simultaneamente sequencias diferentes de instruções, sobre conjunto de dados distintos. Os SMPs, clusters e sistemas NUMA.


Exemplos: Computador Vetorial


Exemplos: Cluster


Exemplos: Server Farmer


TOP 100 SUPERCOMPUTADORES


Conceitos


Fundamentos de Arquitetura de Computador

  • SUMÁRIO

    • Introdução

    • Tipos de computadores

    • Definindo uma arquitetura de computadores


Introdução

  • Incremento exponencial em desempenho de computadores

  • $500 hoje = $1.000.000 em 1985

  • Primeiros 25 anos, crescimento de 25% ao ano

  • Anos 70, crescimento de 35% ao ano graças ao microprocessador / circuito integrado

  • Sucesso comercial dos computadores devido surgimento de linguagens de alto nível (até então era assembly) e introdução de sistemas operacionais independentes como o UNIX, diminuindo custo.


Introdução

  • O fato de UNIX ser independente do fabricante do hardware obrigou maior padronização por hardware. Propiciando o surgimento de máquinas RISC. Com isso foca-se em dois ítens críticos de desempenho.

    • Paralelismo a nível de instrução

    • Memórias cache


Introdução


Introdução

  • Aumento significativo no desempenho dos computadores pessoais (52%)

  • Garantiu a supremacia dos microcomputadores baseados em um único processador (PCs). Minicomputadores foram substituidos por microcomputadores, Mainframes e até supercomputadores foram substituidos pela união de microcomputadores.

  • A arquitetura de computares, portanto precisa se adequar as novas tendências


Introdução

  • A partir de 2002, incremento foi de 20% ao ano devido:

    • Superaquecimento, necessidade de ventilação

    • Saturação do paralelismo a nivel de instrução

    • Saturação da velocidade da memória

  • Intel em 2004 anunciou que abandonou o projeto de novo processador mais veloz e passou a garantir maior perfomance através de múltiplos processadores por chip.


Introdução

  • Portanto, as novas arquiteturas deixaram de focar em paralelismo a nível de instrução (ILP) para focar em paralelismo a nível de thread (TLP) e paralelismo a nível de dados (DLP)

  • Atualmente o ILP é feito implicitamente, de modo transparente ao programador, diferentemente do TLP e DLP, onde o programador necessita explicitar.


Fundamentos de Arquitetura de Computador

  • SUMÁRIO

    • Introdução

    • Tipos de computadores

    • Definindo uma arquitetura de computadores


Tipos de Computadores

  • Nos anos 60, os mais populares eram mainframes enormes, custando milhões de dólares, armazenados em uma sala e administrado por operadores. Basicamente para dados de empresas financeiras e computação científica.

  • Nos anos 70 surge o minicomputador focado para aplicações científicas. Múltiplos usuários usavam-no através de terminais. Processamento compartilhado no tempo. Também surge os supercomputadores para aplicações científicas (mais raros, mas importantes).


Tipos de Computadores

  • Nos anos 80, surgiu o microcomputador servindo como computador pessoal e workstations. Começa a decair o uso de sistemas em tempo compartilhado que é substituído por servidores (maior estabilidade, maior poder de processamento, maior memória).

  • Nos anos 90 surge a internet e o worl wide web, os primeiros computadores pessoais de mão e consumidores de produtos eletrônicos de alto desempenho. A popularidade dos celulares permitiu o surgimento de computadores embarcados.


Tipos de Computadores

  • Estas alterações no uso do computador levaram a três diferentes mercados de computação, cada um caracterizado por diferentes aplicações, requisitos e tecnologias de computação.

  • No ano de 2005, venderam-se 3 bilhões de processadores embarcados, 200 milhões de desktops e 10 milhões de servidores.


Tipos de Computadores

  • Desktop

  • Servidores

  • Embarcados


Tipos de Computadores - DESKTOP

  • Ainda o mercado mais rentável da informática

  • O consumidor tende a “olhar” para o custo-benefício em termos de desempenho.

  • Os novos processadores de alto desempenho e baixo custo são lançados no modelo DESKTOP

  • A diversidade de programas tende a ser um paradigma na arquitetura. E o aumento de aplicações voltadas para a web tendem a se mudar os critérios de análise de desempenho.


Tipos de Computadores - SERVIDORES

  • Com a guinada para sistemas desktop, o papel de servidores cresceu para fornecer maior escalabilidade e mais confiabilidade aos arquivos e serviços de informática.

  • O WWW acelerou essa tendência

  • Tais servidores se tornaram a espinha dorsal da computação empresarial de grande escala, substituindo os tradicionais mainframes


Tipos de Computadores - SERVIDORES

  • CONFIABILIDADE !!!!!!!!


Tipos de Computadores - SERVIDORES

  • ESCALABILIDADE

  • Servidores, muitas vezes, precisam crescer em resposta uma demanda maior de seus serviços. Assim, a capacidade de escalabilidade de poder de processamento, de memória, armazenamento e de I/O é crucial


Tipos de Computadores - SERVIDORES

  • DESEMPENHO

  • Responder a um usuário é importante, mas mais importante é responder a diversos usuários simultaneamente de modo a manter boa qualidade.

  • Pode-se medir o desempenho através do número de requisições que consegue servir em um segundo.


Tipos de Computadores - SERVIDORES

  • Supercomputadores. Eles são os computadores mais caros, custando dezenas de milhões de dólares, e eles enfatizam desempenho de pontos flutuantes.

  • Clusters vêm crescendo imensamente.

  • O número de supercomputadores está diminuindo, assim como as empresas que o usam


Tipos de Computadores - EMBARCADOS

  • São os que crescem a taxas mais altas no mercado

  • Exemplos: geladeira, máquina de lavar, microondas, switches, carros, celulares, PDAs, video-games, DVD, TV, etc.

  • São processadores de 8 ou 16 bits que custam menos de $0,10, processadores de 32 bits que fazem 100 milhões de operações por segundo que custam menos de $5,00 e processadores de ponta que fazem 100 billhões de operações por segundo por $100


Tipos de Computadores - EMBARCADOS

  • A meta principal dos sistemas embarcados é o PREÇO MÍNIMO possível. O desempenho não é tão essencial.

  • Deve-se atentar para diversos sistemas onde o processamento deve ser em tempo real. O usuário não pode solicitar serviços que não possam ser fornecidos.


Tipos de Computadores - EMBARCADOS

  • MINIATURIZAÇÃO DE MEMÓRIA

    • Memória interna ao chip ou externa

  • EFICIÊNCIA ENERGÉTICA

  • Balanceamento

    • eficiência energética x tamanho de memória


Fundamentos de Arquitetura de Computador

  • SUMÁRIO

    • Introdução

    • Tipos de computadores

    • Definindo uma arquitetura de computadores


Definição da Arquitetura do Computador

  • A tarefa do designer de arquitetura de computador é complexo: determinar que atributos são importantes para um novo computador e projetá-lo de modo a maximizar desempenho considerando custos, poder e limitações de disponibilidade.

  • Precisa-se definir o conjunto de instruções, organização funcional, projeto lógico e implementação. Deve-se atentar ainda para design de circuito, invólucro, energia e refrigeração.


Definição da Arquitetura do Computador – Conjunto de Instruções

  • Instruction Set Architecture (ISA). ISA serve de fronteira entre hardware e software

  • Tipos de ISA: Alocados em registradores de uso geral e operandos em registradores ou memória externa. Acesso a memória através de load-store. Fig 1.4.

  • Endereçamento de memória: Todos os computadores, incluindo 80x86 e MIPS,usam endereçamento por byte. No MIPS necessita-se fornecer o alinhamento.


Definição da Arquitetura do Computador – Conjunto de Instruções


Definição da Arquitetura do Computador – Conjunto de Instruções

  • Modos de Endereçamento: Especifica o endereço na memória do objeto. MIPS usa o registro (reg1 := reg2 * reg3; ), direto para constantes (reg1 := reg2 + constant; ) e deslocamento (reg := RAM[base + offset]). O 80x86 usa os mesmos e mais três variações do deslocamento:

    • Offset = 0, ou absoluto

    • Dois registros, base é indexada com deslocamento

    • Dois registros, onde um registro é multiplicado pelo tamanho do operando


Definição da Arquitetura do Computador – Conjunto de Instruções

  • Tipos e tamanhos dos operandos: MIPS and 80x86 suporta operandos de:

    • 8 bits (código ASCII)

    • 16 bits (Caracter Unicode ou half word)

    • 32 bits (inteiro ou word)

    • Temos ainda a representação em número em ponto flutuante com 32 ou 64 bits. O 80x86 ainda permite 80 bits para ponto flutuante.


Definição da Arquitetura do Computador – Conjunto de Instruções

  • Operações: tranferência de dados, aritmético e lógico, controle e ponto flutuante. Ver Fig 1.5 na página 40.

  • Instruções de Controle de Fluxo: desvios condicionais, desvios incondicionais, chamada de procedimento e retorno.

  • Codificação de ISA: Pode ser de tamanho fixo ou variável. Todas as instruções MIPS tem 32 bits. O 80x86 tem tamanho variável entre 1 e 18 bytes. Quando codificado para representação binária ocorrerá grandes diferenças. Fig 1.6.


Definição da Arquitetura do Computador – Conjunto de Instruções


Definição da Arquitetura do Computador – Conjunto de Instruções

  • opcode: código da operação a ser efetuada

  • rs, rt e rd: registradores

  • shamt: deslocamento do registradore

  • funct: variação da operação dita no opcode

  • Immediate: endereço de memória


Hardware

Especificações do Computador

Lógica interna

Tecnologia embutida

Pentium 4 X Mobile Pentium 4  Quase mesma organização, porém diferente clock e sistema de memória.

A concepção da organização e hardware para atingir as metas e requisitos funcionais

  • Organização

    • Aspectos de alto nível

    • Sistema de memória

    • Interconexão entre memória

    • Arquitetura interna da CPU

      AMD Opteron 64 X Intel Pentium 4  Mesmo ISA, porém organização diferente (pipeline e organização da cache)


Fundamentos de Arquitetura de Computadores

  • SUMÁRIO

    • Introdução

    • Tipos de computadores

    • Definindo uma arquitetura de computadores

    • Tendências de tecnologia


Tendências da Tecnologia

  • Se uma ISA (Instruction Set Architecture) atinge o sucesso, ela deve ser feita de modo a sobreviver a rápidas mudanças de tecnologia.

  • A ISA do processador do mainframe da IBM durou 40 anos. Um arquiteto de computadores, portanto, deve planejar de modo a aumentar a vida útil do seu projeto.

  • Um projeto de sistema de computador demora 5 anos para entrar no mercado (2 anos de design e 3 anos de produção)


Tendências da Tecnologia

  • Quatro tecnologias são críticas para implementação modernas:

  • Tecnologia de Circuito Lógico Integrado: aumento de densidade (35%), diminuição de tamanho (10-20%)

  • Semicondutor DRAM (Dynamic random-access memory): aumento da capacidade (40%)

  • Tecnologia de Disco Magnético: aumento de densidade (30%)

  • Tecnologia de Rede: depende de switches e das tecnologias de transmissão


Tendências da Tecnologia

  • Bandwidth ou throughput ou Largura de banda é a quantidade de trabalho feito em determinado tempo (megabytes por segundo em tranferência de dados por disco)

  • Latência ou tempo de resposta é o tempo entre o início e o fim de um evento (milisegundo para disco).


Tendências de Tecnologia


Tendências de tecnologia

  • Um CI (fios e transistores) cada vez estão menores. Decremento linear causa aumento de densidade quadrática.

  • A diminuição de tamanho dos transistores e fios reduz a tensão necessária e melhor o desempenho dos transistores, porém piora o desempenho dos fios,dificultando a propagação do sinal (latência).


Fundamentos de Arquitetura de Computadores

  • SUMÁRIO

    • Introdução

    • Tipos de computadores

    • Definindo uma arquitetura de computadores

    • Tendências de tecnologia

    • Tendências em Energia de CI


Tendências em Energia de CI

  • A energia é levada para dentro do chip e distribuído internamente.

  • Modernos microprocessadores contém centenas de pontos e várias camadas de interconexão.

  • É gerado calor que deve ser dissipado


Tendências em Energia de CI

  • Em chips CMOS, a maior parte do consumo de energia se dá no chaveamento feito pelo transistor.

  • Potência Dinâmica (Watts) = ½ * Carga Capacitiva * Voltagem^2 * Freqüência de chaveamento

  • Energia Dinâmica (Joules) = Carga Capacitiva * Voltagem^2

  • Voltagem diminuiu no decorrer dos anos

  • A carga capacitiva é uma função do número de transistores conectados a uma saída e a tecnologia.


Tendências em Energia de CI

  • Diminuição do CLOCK diminuiu a potência, mas não diminui a energia (para uma mesma tarefa). Para cálculo de vida de bateria, se considera energia.

  • EXEMPLO: -15% V e -15% f


Tendências em Energia de CI

  • Os primeiros microprocessadores dissipavam dezenas de watts

  • O Pentium 4 extreme edition 3.2GHz consome 135 Watts. Portanto, estamos atingindo o limite de temperatura que pode ser dissipada por ar.

  • Vários chips Intel possuem diodos de temperatura que diminuem a atividade do processador quando é atingida determinada temperatura. Diminuição de tensão, freqüência de clock.


Tendência em Energia de CI

  • Potência é o maior fator limitante do uso de transistores.

  • A maioria dos processadores inativam o clock de módulos para economizar energia e potência

  • Apesar de potência dinâmica ser mais crítico, cada vez mais a potência estática torna-se cada vez mais crítico, devido aumento no número de transistores e consequente aumento na corrente de fuga.


Fundamentos de Arquitetura de Computadores

  • SUMÁRIO

    • Introdução

    • Tipos de computadores

    • Definindo uma arquitetura de computadores

    • Tendências de tecnologia

    • Tendências em Energia de CI

    • Tendências em Custo


Tendências em Custo

  • Objetiva-se aqui discriminar os custos dos componentes de um sistema e detectar tendências.

  • O princípio que guia os custos é a curva de tecnologia que é a performance. Memórias DRAM barateiam 40% ao ano, na mesma proporção que aumenta o desempenho.

  • Outro fator é o volume do produto no mercado. Devido aumento de produtividade e de acumulo de experiência na produção (tecnologia).


Tendências em Custo

  • O mercado de informática funciona como commodity. DRAMs, HDs, monitores, teclados, etc... Todos são padronizados e encontrados similares em qualquer canto e feito por qualquer fabricante. Nos últimos anos, muitos computadores pessoais viraram commodity focado em vender desktop e laptop com sistema microsoft windows.

  • Como todos os vendedores vendem praticamente a mesma coisa, a competição é altíssima, o que diminui as margens de lucro. Fora o fato da demanda ser altíssima.


Tendências em Custo

  • O circuito integrado possui o seu custo relativo ascendente.

  • Die=molde(processador), wafer=pastilha, yeld=rendimento


Tendências em Custo


Tendências em Custo


Tendências em Custo


Tendências em Custo

  • Tipicamente, alfa=4 (tecnologia de produção ou curva de aprendizagem). Em 2006 havia uma média de 0.4 cm^2. Considere Wafer yeld=100%


Tendências em Custo

  • A maioria dos microprocessadores modernos de 32 e 64 bits possuem tamanhos entre 1 cm e 1,5 cm.

  • Sistemas embarcados, possuem processadores entre 0.25 cm^2 e 0,1 cm^2

  • $$$$$$$$$$$$$$$$$$$$

  • Wafer de 300mm de diâmetro = $5000-6000 (2006)

  • Se wafer=%5500, o custo de um die de 1cm^2 é de $13 e o de um de 2,25cm^2 é de $46


Tendências em Custo

  • O die precisa ser testado, encapsulado, e novamente testado.

  • Mask set é um processo fixo de produção de chips que é em torno de 1 milhão de doláres. Quanto menos chips produzidos, maior o custo relativo. Consistem em sobrepor camadas de metal.

  • Portanto, precisamos atentar para o cuso benefício, já que maiores processadores implicam em maiores custos.


Fundamentos de Arquitetura de Computadores

  • SUMÁRIO

    • Introdução

    • Tipos de computadores

    • Definindo uma arquitetura de computadores

    • Tendências de tecnologia

    • Tendências em Energia de CI

    • Tendências em Custo

    • Confiabilidade


Confiabilidade

  • Historicamente, o CI é o elemento mais confiável em sistema de computador. Pinos e comunicação são mais suceptíveis a falhas e a parte interna com erros baixíssimos.

  • Essa convenção está mudando a medida que diminuímos os elementos abaixo de 65 nanômetros. A tendência é igualar os erros transitórios e permanentes.


Confiabilidade

  • A confiabilidade tornou-se crítica com a popularização dos serviços de internet. Provedores fornecem Service Level Agreements (SLA) ou Service Level Objectives (SLO) para garantir confiabilidade. Dois estados de acordo com a SLA:

    • 1. Service accomplishment (realizado), aonde o serviço é realizado conforme especificado

    • 2. Service interruption (interrupção), aonde o serviço é diferente do SLA

  • Transição entre os estados ocorrem devido a falhas (2 para 1) e devido a restaurações (1 para 2).


Confiabilidade

  • Quantificação das transições

  • Module reliability (Confiança): medida do tempo contínuo de serviço realizado

  • Module availability (Disponibilidade): medida do serviço realizado em relação a falhas de acordo com a frequência de transições.

  • Unidades:

    • MTTF (tempo médio para falha)

    • MTTR (tempo médio para reparo)

    • FIT (falhas por tempo)


Confiabilidade


Confiabilidade

  • O que fazer para garantir maior confiabilidade? Rendundância!!!!

    • Tempo: repetir a operação para ver se o erro persiste

    • Recursos: ter outros dispositivos em caso de um falhar

  • No exemplo anterior, vamos calcular os novos parâmetros quando duplicamos a fonte de energia.


Confiabilidade

  • Portanto, ao fazermos redundância, teremos uma fonte 830.000.000/200.000=4150 vezes mais confiável


Fundamentos de Arquitetura de Computadores

  • SUMÁRIO

    • Introdução

    • Tipos de computadores

    • Definindo uma arquitetura de computadores

    • Tendências de tecnologia

    • Tendências em Energia de CI

    • Tendências em Custo

    • Confiabilidade

    • Medição, relatórios e resumindo o desempenho


Medição, relatórios e resumindo o desempenho

  • “Meu computador é mais rápido que o seu!” O que isso significa?

  • Para um usuário desktop significa que demora menos tempo para executar determinada tarefa

  • Para o servidor da Amazon.com diz respeito ao número de transações por hora.

  • Portanto, um usuário almeja a redução de tempo de resposta ou tempo de execução. Um administrador de grandes sistemas almeja aumentar o throughput (trabalho feito sobre tempo).


Medição, relatórios e resumindo o desempenho

  • “O throughput d X é 1.3 vezes maior que Y.” Logo, X faz 1.3 tarefas enquanto Y faz 1.


Medição, relatórios e resumindo o desempenho

  • Não se deve atentar apenas para velocidade dos dispositivos. A única medida consistente e confiável de desempenho é o tempo de execução de programas reais. Com a multiprogramação, o processador trabalha em outro programa enquanto espera por E/S e não necessariamente minimiza o tempo de resposta de um programa.

  • O conceito mais elementar de tempo é chamada wall-clock time, tempo de resposta, ou tempo decorrido. Corresponde ao tempo de executar uma tarefa considerando acesso a discos, acesso a memória, atividades de E/S, desempenho de sistema operacional.


Medição, relatórios e resumindo o desempenho

  • Como avaliar o desempenho de um computador? Uma medida simples consiste em considerar um usuário que costuma executar sempre os mesmos programas e começar a mensurar a resposta do sistema para esses processos do usuário.

  • Deve-se, porém contar com outros métodos para medição de desempenho de um computador.


Medição, relatórios e resumindo o desempenho

  • Benchmark

  • Em computação, benchmark é o ato de executar um programa de computador, um conjunto de programas ou outras operações, a fim de avaliar a performance relativa de um objeto, normalmente executando uma série de testes padrões e ensaios nele. (wikipedia)


Medição, relatórios e resumindo o desempenho

  • Benchmark

  • A melhor forma é através de programas reais. Existem outros métodos que tentam facilitar...

    • Kernels

    • Programas simples

    • Benchmark sintéticos

  • Porém, não são ideais, pois o programador pode conspirar para que o resultado de determinado sistema seja superior ou inferior.


Medição, relatórios e resumindo o desempenho

  • Benchmark

  • Existem, portanto, coleções de aplicações benchmark, chamados de benchmark suites. Contém inúmeros programas diferentes de modo a garantir uma análise baseada em cada caso. Cada programa terá características diferentes.


Medição, relatórios e resumindo o desempenho

  • Benchmark

  • EDN Embedded Microprocessor Benchmark Consortium é uma ferramenta com 41 kernels usados para analisar a performance de diferentes computadores embarcados. Conseguem apontar zonas onde não há melhoria e onde há grande melhoria de dezempenho. Utiliza o Dhrystone como programa sintético.


Medição, relatórios e resumindo o desempenho

  • Benchmark

  • Uma das tentativas mais bem sucedidas para criar aplicativos de referência padronizada tem sido o SPEC (Standard Performance Evaluation Corporation). Surgiu nos anos 80 para medir desempenho de workstations. Existem hoje benchmarks SPEC capazes de cobrir diferentes tipos de aplicação.

  • www.spec.org


Medição, relatórios e resumindo o desempenho

  • Desktop Benchmark

  • Benchmarks de processamento intensivo

  • Benchmarks de gráfico intensivo

  • Convêm salientar, porém, que muitos de gráfico intensivo também são de processamento intensivo.

  • SPEC benchmarks são programas reais modificados para serem portáteis e para minimizar o efeito de E/S no desempenho


Medição, relatórios e resumindo o desempenho

  • Desktop Benchmark


Medição, relatórios e resumindo o desempenho

  • Desktop Benchmark

  • O


Medição, relatórios e resumindo o desempenho

  • Servidor Benchmark

  • Como cada servidor tem uma aplicação específica, existirá também diversos tipos de benchmarks.

  • O modo mais simples de medição consiste no benchmark orientado a throughput de processador. Deve haver um benchmark para cada processador.


Medição, relatórios e resumindo o desempenho

  • Servidor Benchmark

  • Como muitos servidores mantém trafego intenso com rede e/ou periféricos (ex: hd). Portanto, existirá um benchmark SPEC para cada serviço. SPECSFS para serviço de servidor de arquivo, SPECWeb para servidor web.


Medição, relatórios e resumindo o desempenho

  • Servidor Benchmark

  • Processamento de transações (TP) benchmarks mede a capacidade de um sistema de lidar com as operações, que consistem em acessos de dados e atualizações. Intenso tráfego com banco de dados. Exemplos: Reserva de passagem aérea, transações bancárias. Dado em transações por tempo.

  • Nos anos 80 surgiu o Transaction Processing Council (TPC) que busca um benchmark voltado para TP. (www.tpc.org)


Medição, relatórios e resumindo o desempenho

  • Benchmark

  • Para um relatório completo constado o desempenho deve ser considerado também o custo do sistema, para que se considere o custo/desempenho.

  • Na prática de projeto de um computador, deve-se avaliar uma míriade de opções para se quantificar os benefícios relativos através de um conjunto de parâmetros relevantes.


Medição, relatórios e resumindo o desempenho

  • Servidor Benchmark

  • O


Fundamentos de Arquitetura de Computadores

  • SUMÁRIO

    • Introdução

    • Tipos de computadores

    • Definindo uma arquitetura de computadores

    • Tendências de tecnologia

    • Tendências em Energia de CI

    • Tendências em Custo

    • Confiabilidade

    • Medição, relatórios e resumindo o desempenho

    • Princípios quantitativos de um projeto de computador


Princípios quantitativos de um projeto de computador

  • Agora que vimos como definir, medir e resumir o desempenho, custo, confiabilidade, e potência, podemos explorar as orientações e princípios que são úteis no projeto e análise de computadores. Esta seção apresenta importantes observações sobre o projeto, bem como duas equações para avaliar alternativas.


Princípios quantitativos de um projeto de computador

  • PARALELISMO!!! Paralelismo é um dos mais importantes métodos para melhorar desempenho. Cada capítulo do livro contém um exemplo de como usar paralelismo.

    • Paralelismo a nível de sistema (processadores e discos). Atentar para a escalabilidade.

    • Paralelismo a nível de instrução (pipeline).

    • Paralelismo a nível digital. Exemplo: procura paralela em memória, aumento de bits por operando.


Princípios quantitativos de um projeto de computador

  • PRINCÍPIO DE LOCALIDADE

  • Característica de programas. Um programa tende a reusar dados e instruções previamente usadas. Pode-se prever as próximas instruções e dados estatisticamente conhecendo-se o passado próximo.

  • Essa característica é mais importante para tratar dados do que instruções.

    • Localidade Temporal

    • Localidade Espacial


Princípios quantitativos de um projeto de computador

  • FOCO NO CASO COMUM

  • Talvez o princípio mais importante em projeto de computadores. Ao projetar, dar ênfase a recursos que serão demasiadamente usadas pelos usuários.

  • Exemplo: Somar. O overflow é raro, portanto, pode-se ignorar maior implementação para tratar overflow para se obter maior rendimento para uma soma sem overflow.


Princípios quantitativos de um projeto de computador

  • FOCO NO CASO COMUM

  • Lei de Amdahl: O ganho de performance que pode ser obtido aumentando desempenho de partes do sistema.


Princípios quantitativos de um projeto de computador

  • FOCO NO CASO COMUM

  • O ganho se dá por dois fatores:

    • A fração do tempo de computação no computador original que pode ser convertido para aproveitar o ganho. Sempre menor ou igual a 1. Exemplo: um processo demora 60 segundos, porém 20 segundos estão sujeitos a melhoria, logo teremos a fração de melhoria de 20/60

    • A melhoria obtida pelo modo de execução melhorada, ou seja, quanto mais rápida a tarefa seria executada se o modo melhorado fosse usado no programa inteiro. Exemplo: um processo melhorado demora 2 segundos enquanto o origial demora 5 segundos, logo teremos speedup=5/2


Princípios quantitativos de um projeto de computador


Princípios quantitativos de um projeto de computador


Princípios quantitativos de um projeto de computador


Princípios quantitativos de um projeto de computador

  • EQUAÇÃO DE DESEMPENHO DE PROCESSADOR

  • Todos apresentam um clock. Ciclos de Clock. Duração de um ciclo de clock é dado em segundos. (1GHz = 1ns)


Princípios quantitativos de um projeto de computador

  • CPI = Ciclos de Clock por instrução

  • IPC = Instrução por ciclo de clock

  • IC = Contador de instrução


Princípios quantitativos de um projeto de computador

  • Desempenho do processador depende de frequência de clock, ciclos de clock por instrução e contador de instrução. E cada um desses três parâmetros tem pesos iguais. Uma melhoria de 10% em qualquer dos 3 itens leva a um ganho de 10% no tempo de processamento.


Princípios quantitativos de um projeto de computador

  • representa o número de vezes que a instrução i em um programa

  • representa a média do número de clocks por instrução para a instrução i


Princípios quantitativos de um projeto de computador


Princípios quantitativos de um projeto de computador

  • A maioria dos modernos processadores incluem contadores de instruções executadas e de ciclos de clock. Monitorando esses parâmetros consegue-se uma boa análise quantitativa.


  • Login