Arquitetura de Computadores

Documentos relacionados
Arquitetura de Computadores

Avaliando e Compreendendo o Desempenho. Capítulo 4

Desempenho. Sistemas de Computação

Medidas de desempenho de CPUs. Uma introdução breve

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

Desempenho DESEMPENHO DE COMPUTADORES

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

Infraestrutura de Hardware. Desempenho

Índice. Escolha de um Computador

Avaliação de desempenho

Organização e Arquitetura de Computadores. Aula 2 - Desempenho Juliana F. Camapum Wanderley.

Arquitetura de Computadores

Aspectos quantitativos elementares

Chapter 2. Adaptado do material de aula de Patterson & Hennessy

PARTE I - FUNDAMENTOS DE PROJETOS DE COMPUTADORES ARQUITETURA DE COMPUTADORES ANTONIO RAMOS DE CARVALHO JÚNIOR

Arquiteturas de Computadores. Fundamentos de Projetos de Computadores

Desempenho. Na otimização do projeto, as métricas mais importantes são custo e desempenho. Arquiteturas de Alto Desempenho - Prof a Luiza Mourelle 1

Arquiteturas para Alto Desempenho CES-25

Desempenho de Computadores

Faculdade de Computação

PCS 2039 Modelagem e Simulação de Sistemas Computacionais

Exemplo Amdahl. O speedup total é dado por:

Avaliação de Desempenho

Informática I. Aula /09/2006 1

Faculdade de Computação

Infraestrutura de Hardware. Introdução

UNIDADE CENTRAL DE PROCESSAMENTO FELIPE G. TORRES

ARQUITETURA DE COMPUTADORES

Organização de Computadores

CAPÍTULO 2 DESEMPENHO

Introdução. Edna Barros

28 de fevereiro de 2016

Organização de Sistemas de Computadores

Testes de Carga em Sistemas de Computação e Benchmark

AULA 2. Prof.: Jadiel Mestre. Introdução à Informática. Introdução à Informática Componentes de um Sistema de Informação

Arquitetura de Computadores. Ivan Saraiva Silva

Arquitectura de Computadores II. Introdução

20/08/2013. Software e Hardware. Prof. Rogério Ferreira. Software

1. Conceitos Básicos de Computação

ENGENHARIA DE SISTEMAS MICROPROCESSADOS

FACULDADE FUCAPI Arquitetura de Computadores Parte I

ORGANIZAÇÃO E ARQUITETURA DE COMPUTADORES I AULA 02: INTRODUÇÃO

Aspectos gerais de arquitecturas de computadores

Algoritmos e Lógica de Programação Componentes e Arquitetura

Arquitetura de Computadores

Unidade Central de Processamento (CPU) Processador. Bernardo Gonçalves Introdução ao Computador 2008/01

Organização de Computadores I

Introdução à Programação Aula 01. Prof. Max Santana Rolemberg Farias Colegiado de Engenharia de Computação

Arquitetura e Organização de Processadores. Aula 1. Introdução Arquitetura e Organização

Capítulo 2 Livro do Mário Monteiro Componentes Representação das informações. Medidas de desempenho


Conceitos sobre Computadores

Introdução à Informática Engenharia Agrícola

Unidade 1: Tecnologias da Informação e Comunicação Conceitos Introdutórios. Tecnologias da Informação e Comunicação

Arquitetura de Computadores I

Arquitetura de Computadores

Arquitetura de computadores

Prof. Eliezer Soares Flores 1 / 22

Organização e Arquitetura de Computadores

ARQUITETURA DE COMPUTADORES

SSC0112 Organização de Computadores Digitais I - Turma 2

Introdução à Ciência da Computação

INFORMÁTICA BÁSICA HARDWARE: COMPONENTES BÁSICOS E FUNCIONAMENTO.

Informática Aplicada. Introdução

Arquitetura de Computadores. Processamento Paralelo

Curso Técnico de Nível Médio

Informática. Hardware & Software

Faculdade de Computação Arquitetura e Organização de Computadores 2 Prof. Cláudio C. Rodrigues

CP Introdução à Informática Prof. Msc. Carlos de Salles

Arquiteturas RISC e CISC. Adão de Melo Neto

Aula 1: Apresentação do Curso

PONTIFÍCIA UNIVERSIDADE CATÓLICA DO RIO GRANDE DO SUL FACULDADE DE INFORMÁTICA

INFORMÁTICA. Professor: Venicio Paulo Mourão Saldanha Site:

INFORMÁTICA (NCINF) CONCEITOS BÁSICOS DE HARDWARE

Os computadores ditigais podem ser classificados em 5 grupos distintos:

Computadores e Programação (DCC/UFRJ)

Revisão FUI. Tiago Alves de Oliveira

Organização de Sistemas Computacionais Processadores: Organização da CPU

Introdução à Informática. Aula 1

Infraestrutura de Hardware. Melhorando Desempenho de Pipeline Processadores Superpipeline, Superescalares, VLIW

INTRODUÇÃO À INFORMÁTICA

INTRODUÇÃO À ARQUITETURA E ORGANIZAÇÃO DE COMPUTADORES. Função e Estrutura. Introdução Organização e Arquitetura. Organização e Arquitetura

Arquitetura e Organização de Computadores

PROCESSADORES Unidade de Controle Unidade Aritmética e Lógica efetua memória de alta velocidade registradores Program Counter Instruction Register

Arquitetura de Computadores. Infraestrutura de TI: Hardware

Aula 1: Apresentação do Curso

Arquitetura e Organização de Computadores

CI212 Organização e Arquitetura de Computadores

Curso: Redes de Computadores

COMPUTADORES COM UM CONJUNTO REDUZIDO DE INSTRUÇÕES. Adão de Melo Neto

Aula 02: Tendências Tecnológicas e Custos

Estruturas de Sistemas Operacionais

INSTITUTO FEDERAL CATARINENSE Campus Ibirama

Arquitetura e Organização de Computadores 2

ARQUITECTURA DE COMPUTADORES 2013/2014 2º SEMESTRE

ESCOLA ESTADUAL IRMÃO AFONSO Oportunizar a Educação por meio do Respeito e da União

Introdução a Computação

Desempenho dos Computadores

Transcrição:

Arquitetura de Computadores Prof. Eduardo Simões de Albuquerque Adaptado do material do Prof. Fábio M. Costa Instituto de Informática UFG 1o. Semestre / 2006 Fundamentos Parte 2 Princípios de Projeto de Computadores 1

Três áreas de aplicação com características diferentes Computação em desktop custo / desempenho sistema dedicado Servidores custo / desempenho em relação a: confiabilidade, disponibilidade, throughput, escalabilidade Computadores embarcados custo, consumo de energia (potência) A tarefa do projetista... Determinar: requisitos funcionais metas de preço, potência e desempenho Influências importantes mercado, quantidade de software existente Otimizar o projeto de acordo com as métricas adotadas custo/desempenho (desktop) throughput e disponibilidade (servidor) consumo de energia (sistemas embarcados) etc. 2

A tarefa do projetista Combinando: Arquitetura do conjunto de instruções nível ISA interface hardware/software Organização do computador componentes funcionais e sua interconexão Implementação de hardware circuitos, tecnologias de integração, etc. Evolução do custo de Memórias DRAM 3

Evolução do custo: Caso do Pentium III Custo de um circuito integrado Intel Pentium 4 4

Custo de um circuito integrado Wafer 8 564 processadores MIPS64 R20K processo: 0.18µm Distribuição do custo em um sistema de computação Gabinete: 6% folha metálica, plástico: 2% fonte de alimentação, ventoinhas: 2% cabos, porcas, parafusos: 1% caixa de transporte, manuais: 1% Placa do processador: 37% processador: 22% DRAM (128MB): 5% Placa de vídeo: 5% Placa-mãe (E/S e rede on-board): 5% :Dispositivos de E/S: 37% teclado e mouse: 3% monitor: 19% disco rígido: 9% unidade de DVD: 6% SO + pacote office básico: 20% Fonte: H&P, 2003 5

Custo X preço Desempenho de Sistemas de Computação 6

Métricas... tempo de resposta: sistema dedicado throughput: sistema compartilhado Medida mais confiável: tempo gasto na execução de programas reais Tempo de execução Y = n => Computador X é n vezes mais Tempo de execução X rápido que Y Métricas: tempo Inclui: acessos a disco acessos à memória atividades de entrada / saída tempo de escalonamento tempo de CPU tempo de usuário tempo de sistema: overhead do SO ex.: Unix time utility: TUser TSys Latency %Utiliz. 90,7µs 12,9µs 2:39 65% 7

Métodos para medição de desempenho Aplicações reais Ex.: Word, Photoshop Aplicações modificadas scripts para simular interação, remoção de E/S Kernels fragmentos de uma aplicação ou programa real, usados para isolar o desempenho de características individuais da máquina Benchmarks de brinquedo exs.: quicksort, quebra-cabeças Benchmarks sintéticos código artificial, corresponde a um perfil médio de execução Benchmarks mais conhecidos: desktop SPEC (Standard Performance Evaluation Corporation) CPU: SPEC CPU2000, SPEC CPU 2004(?) Gráficos: SPECviewperf: OpenGL SPECapc: problemas específicos de modelagem de sólidos e CAD 3D Processamento de alto desempenho Java Servidores (e-mail, arquivos, Web) www.spec.org 8

Benchmarks mais conhecidos: servidores SPEC: SPECrate throughput de processamento SPECFS servidor de arquivos SPECWeb servidores Web Consideram as especificidades da arquitetura de servidores (E/S eficiente, multiprocessamento) Processamento de transações TPC (Transaction Processing Council) processamento de consultas em BDs, sistemas de apoio a decisão, transações baseadas na Web t Benchmarks mais conhecidos: sistemas embutidos Dificuldade em se ter um único benchmark de uso amplo EEMBC (EDN Embedded Microprocessor Benchmark Consortium) 5 classes: automotiva / industrial eletrônica de consumo rede automação de escritório telecomunicações 9

Benchmark Games An embarrassed Intel Corp. acknowledged Friday that a bug in a software program known as a compiler had led the company to overstate the speed of its microprocessor chips on an industry benchmark by 10 percent. However, industry analysts said the coding error was a sad commentary on a common industry practice of cheating on standardized performance tests The error was pointed out to Intel two days ago by a competitor, Motorola came in a test known as SPECint92 Intel acknowledged that it had optimized its compiler to improve its test scores. The company had also said that it did not like the practice but felt to compelled to make the optimizations because its competitors were doing the same thing At the heart of Intel s problem is the practice of tuning compiler programs to recognize certain computing problems in the test and then substituting special handwritten pieces of code Saturday, January 6, 1996 New York Times SPEC 89 Compiler enhancements and performance 800 700 600 SPEC performance ratio 500 400 300 200 100 0 gcc espresso spice doduc nasa7 li eqntott matrix300 fpppp tomcatv Benchmark Compiler Enhanced compiler 10

SPEC CPU2000 SPEC 2000 Does doubling the clock rate double the performance? Can a machine with a slower clock rate have better performance? 1400 1200 1000 Pentium 4 CFP2000 Pentium 4 CINT2000 1.6 1.4 1.2 Pentium M @ 1.6/0.6 GHz Pentium 4-M @ 2.4/1.2 GHz Pentium III-M @ 1.2/0.8 GHz 800 1.0 600 0.8 400 200 Pentium III CINT2000 Pentium III CFP2000 0.6 0.4 0 0.2 500 1000 1500 2000 2500 3000 3500 0.0 Clock rate in MHz SPECINT2000 SPECFP2000 SPECINT2000 SPECFP2000 SPECINT2000 SPECFP2000 Always on/maximum clock Laptop mode/adaptive clock Minimum power/minimum clock Benchmark and power mode 11

Princípios de projeto... Tornar rápido o caso comum gastar mais tempo otimizando as partes do sistema que são usadas com mais freqüência Lei de Amdahl: melhorias de desempenho de partes de um sistema são diluídas no cálculo da melhoria incremental do sistema completo Fração aperfeiçoada Tempo de execução novo = Tempo de execução antigo X (1-Fração aperfeiçoada ) + Aceleração aperfeiçoada A lei de Amdahl: Exemplo Suponha que um programa gaste 100s para executar em uma certa máquina, com operações de multiplicação respondendo por 80s do total. Por quanto devemos melhorar a velocidade de operações de multiplicação se quisermos que o programa execute 4 vezes mais rápido? E para executar 5 vezes mais rápido? Fração aperfeiçoada Tempo de execução novo = Tempo de execução antigo X (1-Fração aperfeiçoada ) + Aceleração aperfeiçoada 12

Princípios de projeto Melhorar a equação de desempenho da CPU: Instruções Ciclos de clock Segundos X X = Tempo de CPU(seg/progr.) Programa Instrução Ciclo de clock Dependências tempo de ciclo de clock: tecnologia de hardware e organização CPI (ciclos por instrução): organização e arquitetura do conjunto de instruções Contagem de instruções (por programa): arquitetura do conjunto de instruções e tecnologia de compiladores Ciclos de clock Relatar o desempenho em termos do número de ciclos gastos ao invés de tempo: segundos ciclos segundos = X programa programa ciclo Tics de clock indicam quando iniciar alguma atividade Tempo de ciclo = tempo entre ticks = segundos por ciclo Taxa de clock (freqüência) = ciclos por segundo (1Hz = 1 ciclo/segundo) Ex.: processador de 2.4GHz tem um tempo de ciclo de: time 1 = 0,42 x 10 9 s = 0,42ns 2.4 x 10 9 13

Formas de melhorar a eficiência segundos ciclos segundos = X programa programa ciclo Reduzir o número de ciclos por programa otimizações feitas pelo compilador conjunto de instruções otimizado Reduzir o tempo de clock (i.e., aumentar a freqüência) tecnologia de hardware organização da máquina Número de ciclos gastos em um programa Poderia assumir que o número de ciclos é igual ao número de instruções do programa: 1st instruction 2nd instruction 3rd instruction 4th 5th 6th... Mas: algumas instruções são mais complexas do que outras, gastando mais tempo instruções diferentes gastam tempos diferentes em máquinas diferentes 14

Diferentes números de ciclos para diferentes instruções Multiplicação gasta mais tempo do que adição Operações de ponto flutuante gastam mais tempo que operações de inteiros Acesso à memória toma mais tempo do que acesso a registradores Exercício: tempo de clock Our favorite program runs in 10 seconds on computer A, which has a 400 Mhz. clock. We are trying to help a computer designer build a new machine B, that will run this program in 6 seconds. The designer can use new (or perhaps more expensive) technology to substantially increase the clock rate, but has informed us that this increase will affect the rest of the CPU design, causing machine B to require 1.2 times as many clock cycles as machine A for the same program. What clock rate should we tell the designer to target? 15

Tempo de clock e desempenho Dobrar a freqüência de clock dobra o desempenho? Pode uma máquina com clock mais lento ter um desempenho melhor? 10 9 8 7 10 9 8 7 SPECint 6 5 4 SPECfp 6 5 4 3 2 1 3 2 1 0 0 50 100 150 200 250 50 100 150 200 250 Clock rate (MHz) Pentium Clock rate (MHz) Pentium Pentium Pro Pentium Pro Exercício: CPI Suponha que temos duas máquinas implementando a mesma arquitetura de conjunto de instruções Para um certo programa: a máquina A tem um período de clock de 10ns e uma CPI = 2,0 a máquina B tem um período de clock de 20ns e uma CPI = 1,2 Qual das duas máquinas é mais rápida para este programa? Qual a diferença entre elas? Se duas máquinas têm a mesma ISA, qual das seguintes quantidades é sempre idêntica? freqüência de clock, CPI, tempo de execução, número de instruções por programa, MIPS 16

Exemplo: Número de instruções por programa Um projetista de compilador está tentando se decidir entre duas seqüências de código para uma máquina particular. Baseado na implementação de hardware, há três classes distintas de instruções: Classe A, Classe B e Classe C, que requerem respectivamente um, dois e três ciclos de clock. A primeira seqüência tem 5 instruções: 2 de A, 1 de B e 2 de C A segunda seqüência tem 6 instruções: 4 de A, 1 de B e 1 de C Qual seqüência será mais rápida? Qual a diferença? Qual é a CPI para cada seqüência? MIPS Milhões de instruções por segundo mais alto para programas que usam instruções simples 17

Exemplo: MIPS Dois compiladores diferentes estão sendo testados para uma máquina de 100MHz com três classes diferentes de instruções: Classe A, Classe B, e Classe C, que requerem 1, 2 e 3 ciclos de relógio respectivamente. Ambos os compiladores são usados para produzir código para um programa em grande escala. O código do primeiro compilador usa 2 milhões de instruções Classe A, 1 milhão de instruções Classe B, e 2 milhões de instruções Classe C. O código do segundo compilador usa 4 milhões de instruções Classe A, 1 milhão de instruções Classe B e 1 milhão de instruções classe C. Qual seqüência será mais rápida de acordo com MIPS? Qual seqüência será mais rápida de acordo com o tempo de exec.? Resumindo Desempenho é específico para cada programa o tempo de execução total é a medida de desempenho consistente Para uma dada arquitetura, melhorias de desempenho resultam de: melhoria na freqüência de relógio melhorias na arquitetura e na organização do processador para reduzir a contagem de CPI melhorias nos compiladores para reduzir tanto a CPI quanto a contagem de instruções/programa Armadilha: esperar que melhorias no desempenho de um aspecto da máquina vão afetar seu desempenho global na mesma proporção 18

Outros princípios de projeto visando desempenho Explorar o princípio da localidade Explorar as oportunidades de paralelismo Empregar técnicas de otimização no compilador Bibliografia Hennessy & Patterson Cap. 1: Fundamentos do Projeto de Computadores Patterson & Hennessy Cap. 2: O Papel da Performance 19