A maior rede de estudos do Brasil

Grátis
34 pág.
Fundamentos2

Pré-visualização | Página 1 de 2

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çãoY
 = n => Computador X é n vezes mais 
Tempo de execuçãoX 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çãoaperfeiçoada
Tempo de execuçãonovo = Tempo de execuçãoantigo X (1-Fraçãoaperfeiç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çãoaperfeiçoada
Tempo de execuçãonovo = Tempo de execuçãoantigo X (1-Fraçãoaperfeiçoada) + Aceleraçãoaperfeiçoada
Princípios de projeto
Melhorar a equação de desempenho da 
CPU:
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
 Instruções Ciclos de clock Segundos
 X X = Tempo de CPU(seg/progr.)
 Programa Instrução Ciclo de clock
D
ep
en
dê
nc
ia
s
Ciclos de clock
Relatar o desempenho em termos do número de ciclos gastos ao 
invés de tempo:
“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:
segundos ciclos segundos
 = X
programa programa ciclo
time
 1
 = 0,42 x 10 9s = 0,42ns 
2.4 x 10 9
Formas de melhorar a 
eficiência
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
segundos ciclos segundos
 = X
programa programa ciclo
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:
Mas:
algumas instruções são mais complexas do que outras, gastando mais 
tempo
instruções diferentes gastam tempos diferentes em máquinas diferentes
1s
t i
ns
tru
ct
io
n
2n
d 
in
st
ru
ct
io
n
3r
d 
in
st
ru
ct
io
n
4t
h
5t
h
6t
h ...
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
Clock rate (MHz)
S
P
EC
in
t
2
0
4
6
8
3
1
5
7
9
10
200 25015010050
Pentium
Pentium Pro
Pentium
Clock rate (MHz)
SP
EC
fp
Pentium Pro
2
0
4
6
8
3
1
5