Arquitetura de Computadores



Documentos relacionados
Arquitetura de Computadores. Ivan Saraiva Silva

Organização de Computadores

Arquitetura de Computadores

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

Organização de Computadores

Arquitetura de Computadores I

Desempenho DESEMPENHO DE COMPUTADORES

Desempenho de Computadores

Medidas de Desempenho e a Lei de Amdahl

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

Arquitetura e Organização de Computadores 2

Arquitetura e Organização de Computadores

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

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

Algumas características especiais

1.3. Componentes dum sistema informático HARDWARE SOFTWARE

FACULDADE PITÁGORAS DISCIPLINA: ARQUITETURA DE COMPUTADORES

CAPÍTULO 2 DESEMPENHO

ARQUITETURA DE COMPUTADORES

ci212 desempenho Avaliação de Desempenho

Capítulo 1 Introdução

MEDIDAS DE DESEMPENHO DE SISTEMA DE COMPUTADORES:

29/3/2011. Primeira unidade de execução (pipe U): unidade de processamento completa, capaz de processar qualquer instrução;

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

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

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

Disciplina: Organização de computadores

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

Sistema Operacional Correção - Exercício de Revisão

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

Arquitetura e Organização de Computadores 2. Apresentação da Disciplina

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

Desempenho. Sistemas de Computação

Medição do Desempenho

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

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

Organização e Arquitetura de Computadores

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

Sistemas Operacionais. Prof. M.Sc. Sérgio Teixeira. Aula 02 - Estrutura dos Sistemas Operacionais. Cursos de Computação

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

ARQUITETURA E ORGANIZAÇÃO DE COMPUTADORES. Prof. André Dutton

Unidade Central de Processamento Organização da UCP Execução de instruções em paralelo ("pipeline") Execução de programas

CURSO BÁSICO DE INFORMÁTICA

Componentes de um Sistema de Computador

SIS17 - Arquitetura de Computadores. Introdução (Parte III)

Modelagem de Sistemas Computacionais. Seleção de Carga de Trabalho Aula 04 Profa. Priscila Solís Barreto

Introdução aos Sistemas Operacionais

ORGANIZAÇÃO DE COMPUTADORES MÓDULO 8

Arquitetura e Organização de Computadores

Prof.: Roberto Franciscatto. Capítulo 1 Introdução

Aula 26: Arquiteturas RISC vs. CISC

Tipos de Computadores. Sediane Carmem Lunardi Hernandes

Arquitetura e Organização de Computadores. Capítulo 0 - Introdução

Arquitetura de Von Neumann e os Computadores Modernos

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

Sistemas Operacionais

Sistemas Operacionais

Sistemas Operacionais

Introdução à Informática

Estrutura e funcionamento de um sistema informático

Máquinas Multiníveis

1. NÍVEL CONVENCIONAL DE MÁQUINA

Edeyson Andrade Gomes

Computadores de Programação (MAB353)

Estrutura geral de um computador

Introdução aos Computadores

Fundamentos de Sistemas de Informação Hardware: Dispositivos de Entrada, Processamento e Saída

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

Sistemas de Computação. Dentro da Unidade do Sistema

Aplicativos Informatizados da Administração. Hardware A evolução e o impacto dos computadores nas áreas de negócios.

Arquitetura de Computadores - Revisão -

Sistemas Operacionais

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

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

Sistema de Computação

Arquitetura e Organização de Computadores. Capítulo 0 - Introdução

Infra-Estrutura de Hardware

Introdução à Arquitetura de Computadores

Hardware (Nível 0) Organização. Interface de Máquina (IM) Interface Interna de Microprogramação (IIMP)

Fundamentos de Hardware. 1. Placa Mãe

Paralelismo. Computadores de alto-desempenho são utilizados em diversas áreas:

Engenharia de Software

Professor: Gládston Duarte

Informática. Técnico em Agronegócio 1º. Módulo Profa. Madalena Pereira da Silva

Índice. Escolha de um Computador

Barramentos - BUS. Professor Especialista: Airton Ribeiro de Sousa

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

Organização e Arquitetura de computadores

Introdução à Computação

Microarquiteturas Avançadas

Curso EFA Técnico/a de Informática - Sistemas. Óbidos

O que é Arquitetura de Computadores?

UFRJ IM - DCC. Sistemas Operacionais I. Unidade I Introdução. 11/02/2014 Prof. Valeria M. Bastos

Técnicas de Manutenção de Computadores

RESPOSTAS DE QUESTIONAMENTOS - II PREGÃO PRESENCIAL PARA REGISTRO DE PREÇOS Nº 15/2011

1a LISTA DE EXERCÍCIOS

Hardware. Objetivos da aula. Fornecer exemplos de processadores Intel. Esclarecer as diferenças e as tecnologias embutidas nos processadores Intel.

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

5 Entrada e Saída de Dados:

Transcrição:

Arquitetura de Computadores Prof. Fábio M. Costa Instituto de Informática UFG 1o. Semestre / 2005 Fundamentos Parte 2

Princípios de Projeto de Computadores

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.

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

Evolução do custo: Caso do Pentium III

Custo de um circuito integrado Intel Pentium 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

Custo X preço

Desempenho de Sistemas de Computação

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%

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

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 www.tpc.org

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

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çãoaperfeiç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çãoaperfeiçoada

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: 1 2.4 x 10 9 time = 0,42 x 10 9 s = 0,42ns

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

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?

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 10 9 9 8 8 7 7 SPECint 6 5 4 SPECfp 6 5 4 3 3 2 2 1 1 0 50 100 150 Clock rate (MHz) 200 250 Pentium 0 50 100 Clock rate (MHz) 150 200 250 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

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

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

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