Organização e Arquitetura de computadores



Documentos relacionados
Organização de Computadores

Infra-estrutura de Hardware

Arquitetura de Computadores I

Desempenho de Computadores

Organização de Computadores

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

Arquitetura e Organização de Computadores Aula 5 Consolidando Conhecimentos de Desempenho e Resumindo Prof. Julio Saraçol

Desempenho DESEMPENHO DE COMPUTADORES

ARQUITETURA DE COMPUTADORES

Medidas de Desempenho e a Lei de Amdahl

Arquitetura de Computadores

Desempenho (Parte I): Compreensão e Avaliação

Arquitetura de Computadores. Ivan Saraiva Silva

Arquitetura e Organização de Computadores

Introdução aos Computadores

Arquitectura de Computadores II. Introdução

Introdução à Arquitetura de Computadores

Organização de Computadores (Aula 3) Componentes de um Computador Unidade Central de Processamento (CPU)

ci212 desempenho Avaliação de Desempenho

Comparativo de desempenho do Pervasive PSQL v11

Computador Eletrônico Digital. Organização de Computadores (Aula 3) Componentes de um Computador (1) É um sistema composto por:

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

Arquitetura e Organização de Computadores

Introdução à Organização de Computadores. Sistemas da Computação Prof. Rossano Pablo Pinto, Msc. rossano at gmail com 2 semestre 2007

Medição do Desempenho

Organização e Arquitetura de Computadores I

Organização e Arquitetura de Computadores I

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

Algumas características especiais

ORGANIZAÇÃO DE COMPUTADORES MÓDULO 8

Previsão do Desempenho. AC1 13ª aula Previsão do Desempenho 1

1.3. Componentes dum sistema informático HARDWARE SOFTWARE

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

Sistema de Computação

Avaliação de Desempenho

ARQUITETURA DE COMPUTADORES

Capítulo 1. Abstrações do Computador e Tecnologia

Guilherme Pina Cardim. Relatório de Sistemas Operacionais I

Introdução à Organização de Computadores. Execução de Programas Prof. Rossano Pablo Pinto, Msc. rossano at gmail com 2 semestre 2007

FACULDADE PITÁGORAS DISCIPLINA: ARQUITETURA DE COMPUTADORES

Processador ( CPU ) E/S. Memória. Sistema composto por Processador, Memória e dispositivos de E/S, interligados por um barramento

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

Tais operações podem utilizar um (operações unárias) ou dois (operações binárias) valores.

AULA 1. Informática Básica. Gustavo Leitão. Disciplina: Professor:

ARQUITETURA DE COMPUTADORES

Estrutura de um Computador. Linguagem de Programação Rone Ilídio UFSJ - CAP

Sistemas Computacionais II Professor Frederico Sauer

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

MEDIDA E ANÁLISE DE DESEMPENHO AULA 14 Arquitetura de Computadores Gil Eduardo de Andrade

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

Aula 14: Instruções e Seus Tipos

Aula 26: Arquiteturas RISC vs. CISC

3. O NIVEL DA LINGUAGEM DE MONTAGEM

INSTITUTO DE EMPREGO E FORMAÇÃO PROFISSIONAL, I.P.

Anotações da Parte 2

Organização e Arquitetura de Computadores I. Introdução. Ivan Saraiva Silva Leonardo Casillo

ARTIGO IV PRINCIPAIS PARTES DA CPU

Visão Geral da Arquitetura de Computadores. Prof. Elthon Scariel Dias

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

Informática I. Aula 4. Aula 4-11/09/2006 1

Memória principal; Unidade de Controle U C P. Unidade Lógica e Aritmética

BARRAMENTO DO SISTEMA

O quê um Processador e qual a sua função?

Capítulo 1. This material may not be copied or distributed for commercial purposes without express written permission of the copyright holder.

EA773 - Experimento 5

Arquitetura de Von Neumann e os Computadores Modernos

Evolução das CPUs: Dual e Quad Core

Edeyson Andrade Gomes

Introdução. Uso do disco Vantagens Desvantagens Baixo custo, facilidade de manutenção do software e do hardware, simetria e flexibilidade

Algoritmos. Cláudio Barbosa

Disciplina: Introdução à Informática Profª Érica Barcelos

Técnicas de Manutenção de Computadores

O Que Veremos. Introdução. Introdução. Definindo Desempenho. Definindo Desempenho. Avaliando e Compreendendo o Desempenho

Organização de Computadores e Proj.Integrado. Desempenho Herbert Rausch Fernandes

Introdução à Computação: Arquitetura von Neumann

Organização e Arquitetura de Computadores I. de Computadores

Prof. Marcos Ribeiro Quinet de Andrade Universidade Federal Fluminense - UFF Pólo Universitário de Rio das Ostras - PURO

Arquitetura de Computadores - Arquitetura RISC. por Helcio Wagner da Silva

Processadores clock, bits, memória cachê e múltiplos núcleos

Arquitecturas Alternativas. Pipelining Super-escalar VLIW IA-64

Arquitetura de Computadores RISC x CISC. Gustavo Pinto Vilar

A história do Processadores O que é o processador Características dos Processadores Vários tipos de Processadores

Processadores. Guilherme Pontes

RISC - Reduced Instruction Set Computer

Prof. Sandrina Correia

CP C U P U - Un U i n da d d a e d e Ce C n e t n ral a de d e Pr P oc o es e sam a e m n e t n o o Pr P oc o es e sad a o d r o Aula 03

Capítulo 1 Introdução

MEDIDAS DE DESEMPENHO DE SISTEMA DE COMPUTADORES:

Fundamentos de Banco de Dados

O que é Arquitetura de Computadores?

1. NÍVEL CONVENCIONAL DE MÁQUINA

Introdução à Computação

Pré-requisitos para Instalação Física e Lógica do SISLOC

Campus Capivari Análise e Desenvolvimento de Sistemas (ADS) Prof. André Luís Belini prof.andre.luis.belini@gmail.com /

IFPE. Disciplina: Sistemas Operacionais. Prof. Anderson Luiz Moreira

RISC X CISC - Pipeline

Contil Informática. Curso Técnico em Informática Processadores Core

PROCESSADORES. Introdução 25/04/2012. Professor Marlon Marcon

SIS17-Arquitetura de Computadores

Sistema Operacional. Prof. Leonardo Barreto Campos 1

Transcrição:

Organização e Arquitetura de computadores Avaliando e compreendendo o desempenho Prof. Dr. Luciano José Senger Vazão e tempo de resposta Tempo de resposta: também chamado de tempo de execução, o tempo total necessário para o computador completar uma tarefa, como a acesso a disco, acesso à memória, atividade de E/S, overhead do sistema operacional, tempo de execução da UCP, etc. Vazão (throughput), indica a quantidade de tarefas terminadas por unidade de tempo Exemplos: Disco de 50 MBytes/s Memória de 20 nanosegundos Processador de 500 MFLOPS Rede de 100 MBits/s Desempenho Para maximizar o desempenho, devemos minimizar o tempo de resposta: Desempenho(x) = 1 / Tempo de execuçao(x) Em dois computadores e Y, se o desempenho de é maior que o desempenho de Y temos: Desempenho(x) > Desempenho(Y) 1 / Tempo de execução(x) > 1 / Tempo de execução(y) Tempo de execução(y) > Tempo de execução (x) Na análise do projeto de um computador, normalmente queremos relacionar o desempenho de dois computadores diferentes de maneira quantitativa: Desempenho(x)/Desempenho(y) = n Desempenho(x)/Desempenho(y) = TE(y)/TE(x) = n nindica a quantidade de vezes que o desempenho de x émaior que o de y Desempenho relativo Se um computador A executa um programa em 10 segundos e o computador B executa o mesmo programa em 15 segundos, o quanto A émelhor que B? N = TE(B)/TE(A) = 15/10 = 1,5 Medindo o desempenho O tempo é a medida de desempenho dos computadores: o computador que a realiza a mesma quantidade de trabalho no menor tempo é mais rápido Tempo pode ser definido de diferentes maneiras: tempo de relógio, tempo de resposta ou tempo corrido são as definições mais simples Sistema de tempo compartilhado pode alterar os valores observados: as vezes énecessário distinguir entre o tempo corrido e o tempo que o processador foi realmente utilizado pelo programa Medindo o desempenho Tempo de execução na UCP ou tempo de UCP Reconhece a distinção entre o tempo gasto para executar o programa em termos de utilização de UCP O tempo de CPU pode ser dividido entre o tempo que égasto pelo programa e o tempo que égasto pelo sistema O tempo gasto pelo sistema envolve o tempo gasto com Sobrecarga do sistema operacional Operações de E/S Sob o ponto de vista do sistema, tem-se o ciclo de clocke o período de clock Todos os computadores são construídos com um relógio (temporizador) que trabalha em uma velocidade constante e determina quando os eventos ocorrem no hardware: ciclos de clock Período de clockrefere-se ao tempo de cada ciclo de clock(p.e.0,25 nanosegundo) Velocidade de clockrefere-se ao inverso do período de clock, ou frequência do processador (p.e. 4GHz) Entendendo o desempenho dos programas Diferentes aplicações São sensíveis a diferentes aspectos do desempenho de um sistema computacional Aplicações executadas em servidores dependem de desempenho de E/S; aplicações numéricas dependem de um bom desempenho da UCP Assim, é importante definir a medida de desempenho apropriada Exemplos: Suponha que queremos saber se uma aplicação que usa o desktopde um cliente e um servidor remoto estálimitada pelo desempenho da rede. Para as mudanças a seguir, diga se apenas a vazão melhora, se o tempo de resposta e a vazão melhoram ou se nenhum dos dois melhoram: Um canal extra de rede éacrescentado entre o cliente e o servidor, aumentando a vazão total da rede e reduzindo o atraso para obteracesso à mesma; O software de rede émelhorado, reduzindo assim o atraso da comunicação via rede, mas não melhorando a vazão de rede; Mais memória é acrescentada ao computador. O desempenho do computador C é4 vezes melhor que o desempenho do computador B, que executa uma aplicação em 28 segundos. Quando tempo o computador C levará para executar essa aplicação?

Medidas de desempenho Tucp= Ciclos x TCiclo Tucp = Ciclos/Velocidade de clock Tempo de execução da UCP para um programa (Tucp) Ciclos de clockda UCP para um programa (Ciclos) Tempo de ciclo de clock(tciclo) Essa fórmula deixa claro que o projetista pode melhorar o desempenho reduzindo a duração do ciclo de clock ou o número de ciclos de clocknecessários para um programa Projetista deve achar um equilíbrio entre os dois aspectos Tempo de clock (MHz, GHz) éo inversodo ciclo de clock (clock period) CC = 1 / CR one clock period 10 nsec clock cycle => 100 MHz clock rate 5 nsec clock cycle => 200 MHz clock rate 2 nsec clock cycle => 500 MHz clock rate 1 nsec clock cycle => 1 GHz clock rate 500 psec clock cycle => 2 GHz clock rate 250 psec clock cycle => 4 GHz clock rate 200 psec clock cycle => 5 GHz clock rate Melhorando o desempenho Nosso programa favorito éexecutado em 10 segundos no computador A, que tem um ciclo de clockde 4 GHz. Estamos tentando ajudar o projetista do computador B que execute esse programa em 6 segundos. O projetista determinou que um aumento substancial na velocidade de clocképossível, mas esse aumento afetaráo restante do projeto de UCP, fazendo com que o computador B exija 1,2 vez mais ciclos de clockdo que o computador A para esse programa. Que velocidade de clock devemos dizer para o projetista buscar? Melhorando o desempenho Qual éa quantidade de ciclos de clocknecessários para o programa A? TempoUCPA = CiclosdeClockA/VelocidadeClockA 10 segundos = CiclosdeClock/(4 x 10^9 ciclos/segundo) CiclosdeClock= 40 x 10^9 O tempo de UCP para B pode ser encontrado usando a seguinte equação: TempoUCPB = 1,2 x ciclosdeclocka/ velocidadeclockb 6 segundos = (1,2 x 40 x 10^9 ciclos) / velocidadeclockb VelocidadeClockB= (1,2 x 40 x 10^9) / 6 VelocidadeClockB = 8GHz Portanto, a velocidade de clockdo computador B deve ser o dobro da velocidade de clockdo computador A para poder executar o programa em 6 segundos Interface hardware/software As equações anteriores não fazem referência ao número de instruções necessárias para o programa; entretanto, o compilador claramente gerou instruções para rodar o programa, o tempo de execução tem de depender do número de instruções em um programa CiclosdeClockUCP= Intruções x médiadosciclosdeclockporinstrução O termo ciclos de clockpor instrução, que éo número médio de ciclos de clock que cada instrução gasta para ser executada, é abreviado como CPI Como diferentes instruções podem gastar diferentes quantidades de tempo dependendo do que elas fazem, o CPI éuma média de todas as instruções executadas no programa O CPI fornece uma maneira de comparar duas implementações diferentes do mesmo conjunto de instruções, jáque a contagem de instruções necessária para um programa será a mesma Usando a equação do desempenho Para um mesmo conjunto de instruções, o computador A tem um tempo de ciclo de clockde 250ps e um CPI de 2,0 para um determinado programa, e o computador B tem um tempo de ciclo de clockde 500ps e um CPI de 1,2 para o mesmo programa. Que computador émais rápido para esse programa e o quanto mais rápido? Sabe-se que cada computador executa o mesmo número de instruções para o programa; vamos chamar esse número de I: CiclosClockCPUA= I x 2,0 CiclosClockCPUB= I x 1,2 Pode-se calcular o tempo de UCP para cada computador: TempoCPUA = CiclosClockCPUA x TempoCicloClockA TempoCPUA= I x 2,0 x 250ps = 500 x Ips TempoCPUB= I x 1,2 x 500ps = 600 x Ips 600/500 = 1,2, assim o computador A é1,2 vez mais rápido

Usando equações de desempenho TempoCPU= ContagemdeInstruçõesx CPI x TempoCicloClock TempoCPU= (ContagemdeInstruçõesx CPI )/ velocidadeclock O cálculo do CPI efetivo é feito observando os diferentes tiposde instruçõese suasquantidadesde ciclos: n Ciclosde clock daucp = Σ (CPI i x C i ) i = 1 C i éa quantidadedasinstruçõesdaclassei queé executada CPI i éo númeromédiode ciclosde clock por instrução para a classe de instruções corrente n éo númerode classes de instruções Um exemplo simples ALU Load Store Op Branch Freq 50% 20% 10% 20% CPI i Freq x CPI i 1 5 3 2 Σ= O quantoserámaisrápidaumamáquinase um esquemamelhoradode cache reduziro tempo de load para2 ciclos? Novo tempo CPU = 1.6 x IC x CC então 2.2/1.6 significa 37% mais rápido Como compararcom um novo esquemaquereduzpelametadeo tempo de branch? Novo tempo CPU = 2.0 x IC x CC então 2.2/2.0 significa 10% mais rápido E se duasinstruçõesdaalu pudessemser executadasaomesmotempo? 2.2 1.6.2 2.0.25 1.95 Novo tempo CPU = 1.95 x IC x CC então 2.2/1.95 significa 12.8% mais rápido Workload e benchmarks Workload: Conjunto de programas frequentemente executados pelo usuário Benchmarks: programas específicos para medir o desempenho formam um workload O melhor tipo de programa para benchmarksão aplicações reais Experimentos com benchmarksdevem seguir o conceito de reprodutibilidade (SPEC) Entendendo o desempenho dos programas gzip vpr gcc mcf crafty parser eon perlbmk gap vortex bzip2 twolf Integer benchmarks compression FPGA place & route GNU C compiler Combinatorial optimization Chess program Word processing program Computer visualization perl application Group theory interpreter Object oriented database compression Circuit place & route wupwise swim mgrid applu mesa galgel art equake facerec ammp lucas fma3d sixtrack apsi FP benchmarks Quantum chromodynamics Shallow water model Multigrid solver in 3D fields Parabolic/elliptic pde 3D graphics library Computational fluid dynamics Image recognition (NN) Seismic wave propagation simulation Facial image recognition Computational chemistry Primality testing Crash simulation fem Nuclear physics accel Pollutant distribution Algoritmo Linguagemde programação Compilador ISA (conjunto de instruções) Organizaçãodo processador Tecnologia Quantidadede instruções CPI Tempo de clock

(Pentium) (consumo de energia) Falácias e armadilhas Armadilha: usar um subconjunto da equação de desempenho como uma medida de desempenho Além de usar apenas o ciclo de CPU para medir o desempenho dos computadores, qualquer subconjunto de medidas de desempenho pode inferir em medidas imprecisas de desempenho Exemplo: medida MIPS Falácias e armadilhas Armadilha: esperar a melhoria de um aspecto de um computador para aumentar o desempenho por uma quantidade proporcional ao tamanho da melhoria Suponha um programa executado em 100 segundos em um computador, com operações de multiplicação responsáveis por 80 segundos desse tempo. Em quanto preciso melhorar a velocidade da multiplicação se desejo que meu programa rode cinco vezes mais rápido?

Lei de Adamhl Tm = (T/Q + Tn) Tm= Tempo de execução afetado pela melhoria T = tempo de execução do programa afetado pela melhoria Q = quantidade de melhoria Tn= Tempo de execução não afetado Tm= 80 segundos / n + (100-80) 20 segundos = 80 segundos/n + 20 segundos 0 = 80 segundos/n Ou seja, não háquantidade alguma pela qual possamos melhorar a multiplicação para conseguir um aumento de cinco vezes no desempenho, se a multiplicação for responsável por apenas 80% do workload A lei de Adamhlserve para lembrar do princípio de projeto: torne o caso comum mais rápido Leituras Recomendadas Patterson, capítulo 4 Monteiro