Arquitetura Avançada de
Computadores

Prof. Felipe Ferreira de Oliveira

[email protected]
1
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;
2
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.
3
PGD – CONTEÚDO
PROGRAMÁTICO
1) Introdução a arquitetura de Computadores
1) Introdução
2) Tipos de Computadores
3) Tendências
4) Análises quantitativas
2) Pipelining
1) Introdução
2) Pipeline Hazards
3) Como o pipeline é implementado?
4
PGD – CONTEÚDO
PROGRAMÁTICO
1) Paralelismo a nível de instrução
1) Conceitos
2) Técnicas de compilador
3) Redução de custos com predição
4) Agendamento dinâmico
5) Especulação baseada em Hardware
2) Limites de paralelismo a nivel de instrução
1) Introdução
2) Estudo das limitações
3) Especulação de hardware x software
4) Multithreading
5
PGD – CONTEÚDO
PROGRAMÁTICO
1) Multiprocessadores e paralelismo a nível de threads
1) Introdução
2) Arquitetura de memória compartilhada
3) Memória compartilhada distribuída
4) Sincronização
5) Consistência de dados
2) Hierarquia de memória
1) Introdução
2) Otimização de memória cache
3) Proteção: Memória virtual e Máquinas virtuais
6
PGD – CONTEÚDO
PROGRAMÁTICO
1) Sistemas de armazenamento
1) Introdução
2) Tópicos avançados em armazenamento em disco
3) Definições e exemplos de possíveis problemas
4) Estatísticas de perfomance de dispositivos de I/O
2) Tendências atuais e Hardware reconfiguráveis
7
PGD – Metodologia e Avaliações
• Aulas Expositivas através de slides
• Provas escritas
• Trabalhos e Seminários
8
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
9
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
10
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.
11
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 !!!!!!
12
Introdução
• Paralelismo
• Processadores
• Memória
• Computadores
• Instruções (pipeline)
• Cache
• ULAs
13
Introdução
• Níveis de paralelismo
1. Paralelismo a nivel de instrução
2. Várias linhas de execução em um mesmo
processador
3. Várias linhas de execução em diferentes
processadores (dual, quad core)
4. Computadores paralelos interconectados com
redes de alta velocidade
5. Cluster de Computadores
6. Computadores na internet
14
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
15
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)16
é 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.
17
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.
18
19
Exemplos: Computador Vetorial
20
Exemplos: Cluster
21
Exemplos: Server Farmer
22
TOP 100 SUPERCOMPUTADORES
23
Conceitos
Custo de
Falhas
comunicação
Aplicações
centralizadas
Aplicações
distribuidas
Particionamen
to
Segurança
Escalabilidad
e
Baixo
Todo o
Não há
sistema falha
Controle mais
simples
Limitada por
natureza
Mais alto
Partes
falham
independent
e-mente
Vários pontos
de entrada
Depende do
projeto
adequado
Partes podem
ficar sem
comunicação
24
25
Fundamentos de Arquitetura de
Computador
• SUMÁRIO
• Introdução
• Tipos de computadores
• Definindo uma arquitetura de computadores
26
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.
27
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
28
Introdução
29
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
30
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.
31
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.
32
Fundamentos de Arquitetura de
Computador
• SUMÁRIO
• Introdução
• Tipos de computadores
• Definindo uma arquitetura de computadores
33
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).
34
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.
35
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.
36
Tipos de Computadores
• Desktop
• Servidores
• Embarcados
37
Tipos de Computadores - DESKTOP
• Ainda o mercado mais rentável da informática
• O consumidor tende a “olhar” para o custobenefí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.
38
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
39
Tipos de Computadores SERVIDORES
• CONFIABILIDADE !!!!!!!!
40
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
41
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.
42
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
43
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
44
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.
45
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
46
Fundamentos de Arquitetura de
Computador
• SUMÁRIO
• Introdução
• Tipos de computadores
• Definindo uma arquitetura de computadores
47
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.
48
Definição da Arquitetura do Computador
– Conjunto de Instruções
•
Instruction Set Architecture (ISA). ISA serve de
fronteira entre hardware e software
1. 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.
2. Endereçamento de memória: Todos os
computadores, incluindo 80x86 e MIPS,usam
endereçamento por byte. No MIPS necessitase fornecer o alinhamento.
49
Definição da Arquitetura do Computador
– Conjunto de Instruções
50
Definição da Arquitetura do Computador
– Conjunto de Instruções
1. 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
51
Definição da Arquitetura do Computador
– Conjunto de Instruções
1) 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.
52
Definição da Arquitetura do Computador
– Conjunto de Instruções
1) Operações: tranferência de dados, aritmético e
lógico, controle e ponto flutuante. Ver Fig 1.5 na
página 40.
2) Instruções de Controle de Fluxo: desvios
condicionais, desvios incondicionais, chamada de
procedimento e retorno.
3) 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.
53
Definição da Arquitetura do Computador
– Conjunto de Instruções
54
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
55
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
• Hardware
– Especificações do
Computador
– Lógica interna
– Tecnologia embutida
– Arquitetura interna da CPU Pentium 4 X Mobile Pentium 4
 Quase mesma
AMD Opteron 64 X Intel Pentium
organização, porém diferente
4  Mesmo ISA, porém
clock e sistema de memória.
organização diferente
(pipeline e organização da
cache)
56
Fundamentos de Arquitetura de
Computadores
• SUMÁRIO
– Introdução
– Tipos de computadores
– Definindo uma arquitetura de computadores
– Tendências de tecnologia
57
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)
58
Tendências da Tecnologia
•
Quatro tecnologias são críticas para implementação
modernas:
1. Tecnologia de Circuito Lógico Integrado: aumento de
densidade (35%), diminuição de tamanho (10-20%)
2. Semicondutor DRAM (Dynamic random-access
memory): aumento da capacidade (40%)
3. Tecnologia de Disco Magnético: aumento de
densidade (30%)
4. Tecnologia de Rede: depende de switches e das
tecnologias de transmissão
59
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).
60
Tendências de Tecnologia
61
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).
62
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
63
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
64
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.
65
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
66
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.
67
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.
68
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
69
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).
70
71
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.
72
Tendências em Custo
• O circuito integrado possui o seu custo relativo
ascendente.
• Die=molde(processador), wafer=pastilha,
yeld=rendimento
73
Tendências em Custo
74
Tendências em Custo
75
Tendências em Custo
76
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%
77
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
78
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.
79
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
80
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.
81
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).
82
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)
83
Confiabilidade
84
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.
85
Confiabilidade
Portanto, ao fazermos redundância, teremos uma
fonte 830.000.000/200.000=4150 vezes mais
confiável
86
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
87
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).
88
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.
89
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 wallclock 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.
90
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.
91
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)
92
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.
93
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.
94
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.
95
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
96
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
97
Medição, relatórios e
resumindo o desempenho
Desktop Benchmark
98
Medição, relatórios e
resumindo o desempenho
Desktop Benchmark
• O
99
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.
100
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.
101
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)
102
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.
103
Medição, relatórios e
resumindo o desempenho
Servidor Benchmark
• O
104
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
105
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.
106
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.
107
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. Podese 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
108
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.
109
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.
110
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
111
Princípios quantitativos de um
projeto de computador
112
Princípios quantitativos de um
projeto de computador
113
Princípios quantitativos de um
projeto de computador
114
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)
115
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
116
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.
117
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
118
Princípios quantitativos de um
projeto de computador
119
120
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.
121
Download

Arquitetura Avançada de Computadores