Arquitetura e Organização de Computadores 1 José Hiroki Saito Igor Marçal Botamede Spadoni –...
Transcript of Arquitetura e Organização de Computadores 1 José Hiroki Saito Igor Marçal Botamede Spadoni –...
![Page 1: Arquitetura e Organização de Computadores 1 José Hiroki Saito Igor Marçal Botamede Spadoni – PESCD.](https://reader035.fdocument.pub/reader035/viewer/2022062404/552fc103497959413d8beaea/html5/thumbnails/1.jpg)
Arquitetura e Organização de Computadores 1José Hiroki Saito
Igor Marçal Botamede Spadoni – PESCD
![Page 2: Arquitetura e Organização de Computadores 1 José Hiroki Saito Igor Marçal Botamede Spadoni – PESCD.](https://reader035.fdocument.pub/reader035/viewer/2022062404/552fc103497959413d8beaea/html5/thumbnails/2.jpg)
Eficiência de um sistema inteiro Avaliar e compreender o desempenho
trata: Medir Informar Resumir Fatores determinantes
2
![Page 3: Arquitetura e Organização de Computadores 1 José Hiroki Saito Igor Marçal Botamede Spadoni – PESCD.](https://reader035.fdocument.pub/reader035/viewer/2022062404/552fc103497959413d8beaea/html5/thumbnails/3.jpg)
É complexo avaliar o desempenho desse tipo de sistema Complexidade e escala dos softwares
modernos Ampla gama de técnicas de melhoria de
desempenho Impossível sentar com um manual do
conjunto de instruções e determinar a velocidade de execução de um sistema
3
![Page 4: Arquitetura e Organização de Computadores 1 José Hiroki Saito Igor Marçal Botamede Spadoni – PESCD.](https://reader035.fdocument.pub/reader035/viewer/2022062404/552fc103497959413d8beaea/html5/thumbnails/4.jpg)
Desempenho é um fator importante para os projetistas O que determina o desempenho de um
computador?
4
![Page 5: Arquitetura e Organização de Computadores 1 José Hiroki Saito Igor Marçal Botamede Spadoni – PESCD.](https://reader035.fdocument.pub/reader035/viewer/2022062404/552fc103497959413d8beaea/html5/thumbnails/5.jpg)
Analogia com aviões de passageiro
Desempenho determinado pela velocidade: Quão rápido é o Concorde comparado com o
747? 1 passageiro de um ponto a outro 450 passageiro de um ponto a outro
5
Avião Passageiros Autonomia (mi) Velocidade (mph)
Boeing 777 375 4630 610Boeing 747 470 4150 610BAC/Sud Concorde 132 4000 1350Douglas DC-8-50 146 8720 544
![Page 6: Arquitetura e Organização de Computadores 1 José Hiroki Saito Igor Marçal Botamede Spadoni – PESCD.](https://reader035.fdocument.pub/reader035/viewer/2022062404/552fc103497959413d8beaea/html5/thumbnails/6.jpg)
Tempo de Resposta (latência) Quanto tempo leva para executar uma tarefa?
Throughput Quantas tarefas a máquina pode executar de
uma vez? O que é a taxa média de execução?
Qual o impacto, se substituir o processador por uma versão mais rápida?
Qual o impacto, se adicionarmos uma nova máquina no laboratório?
6
![Page 7: Arquitetura e Organização de Computadores 1 José Hiroki Saito Igor Marçal Botamede Spadoni – PESCD.](https://reader035.fdocument.pub/reader035/viewer/2022062404/552fc103497959413d8beaea/html5/thumbnails/7.jpg)
Tempo de Resposta ou Tempo de Execução Tempo entre inicio e término de uma tarefa Diminuir o tempo de resposta quase
sempre melhora a vazão Dizer que uma máquina A é n vezes mais
rápida que uma máquina B significa que:
7
nxecuçãotempo de e
xecuçãotempo de e
A
B
![Page 8: Arquitetura e Organização de Computadores 1 José Hiroki Saito Igor Marçal Botamede Spadoni – PESCD.](https://reader035.fdocument.pub/reader035/viewer/2022062404/552fc103497959413d8beaea/html5/thumbnails/8.jpg)
Desempenho é definido como o inverso do tempo de execução
Desempenho Relativo
8
AA
1desempenho
xecuçãotempo de e
B
A
A
B
A
B1
1
desempenho
desempenho
desempenho
desempenho
xecuçãotempo de e
xecuçãotempo de en
![Page 9: Arquitetura e Organização de Computadores 1 José Hiroki Saito Igor Marçal Botamede Spadoni – PESCD.](https://reader035.fdocument.pub/reader035/viewer/2022062404/552fc103497959413d8beaea/html5/thumbnails/9.jpg)
Problema: máquina A executa um programa em 10
segundos máquina B executa o mesmo programa em
15 segundosCalcular n
5,110
15A
B
B
A
n
n
xecuçãotempo de e
xecuçãotempo de e
desempenho
desempenhon
![Page 10: Arquitetura e Organização de Computadores 1 José Hiroki Saito Igor Marçal Botamede Spadoni – PESCD.](https://reader035.fdocument.pub/reader035/viewer/2022062404/552fc103497959413d8beaea/html5/thumbnails/10.jpg)
Tempo decorrido Tempo de CPU gasto no SO realizando as
tarefas a pedido do programa Tempo de CPU
Não conta E/S ou tempo dispendido rodando outros programas
significa o tempo que a CPU consome computando
Nosso foco: tempo de CPU do usuário tempo gasto executando linhas de código que
estão “dentro” do nosso programa
![Page 11: Arquitetura e Organização de Computadores 1 José Hiroki Saito Igor Marçal Botamede Spadoni – PESCD.](https://reader035.fdocument.pub/reader035/viewer/2022062404/552fc103497959413d8beaea/html5/thumbnails/11.jpg)
Caracterizado por limitações de tempo real
Dois tipos de limitações Tempo real rígido
Define um limite fixo para responder ou processar um evento (ex: freio antitravamento)
Tempo real flexível Uma resposta média ou uma resposta dentro
de um tempo limitado a uma grande fração dos eventos (ex: manipular quadros de vídeos em um sistema de reprodução)
11
![Page 12: Arquitetura e Organização de Computadores 1 José Hiroki Saito Igor Marçal Botamede Spadoni – PESCD.](https://reader035.fdocument.pub/reader035/viewer/2022062404/552fc103497959413d8beaea/html5/thumbnails/12.jpg)
Métricas utilizadas Ciclos de clock Tempo de ciclo Instruções por programa Média dos ciclos de clock por instrução
ou
12
cloempo do ci clock x t ciclos dexecução tempo de e
de clockvelocidade
clockciclos de xecuçãotempo de e
![Page 13: Arquitetura e Organização de Computadores 1 José Hiroki Saito Igor Marçal Botamede Spadoni – PESCD.](https://reader035.fdocument.pub/reader035/viewer/2022062404/552fc103497959413d8beaea/html5/thumbnails/13.jpg)
Porém nas equações anteriores não fazemos referência ao número de instruções necessárias para o programa, logo o número de ciclos de clock pode ser estendido como:
Ciclos de clock por instrução pode ser chamado como CPI
13
rução por instama o progr iclosédia dos cs para x m Instruçõeclock ciclos de
cloempo do cie Inst x t CPIx Nº dxecução tempo de e
![Page 14: Arquitetura e Organização de Computadores 1 José Hiroki Saito Igor Marçal Botamede Spadoni – PESCD.](https://reader035.fdocument.pub/reader035/viewer/2022062404/552fc103497959413d8beaea/html5/thumbnails/14.jpg)
Ao invés de reportar o tempo de execução em segundos, geralmente usa-se ciclos
Um “tick” de clock indica quando se inicia uma atividade Tempo de ciclo = tempo entre ticks =
segundos por ciclo Taxa de clock (frequência) = ciclos por
segundo (1 Hz. = 1 ciclo/s)
![Page 15: Arquitetura e Organização de Computadores 1 José Hiroki Saito Igor Marçal Botamede Spadoni – PESCD.](https://reader035.fdocument.pub/reader035/viewer/2022062404/552fc103497959413d8beaea/html5/thumbnails/15.jpg)
Assumir que # de ciclos = # de instruções
Essa consideração é apenas uma aproximação, pois diferentes instruções levam diferentes tempos para serem executadas.
time
1st
inst
ruct
ion
2nd
inst
ruct
ion
3rd
inst
ruct
ion
4th
5th
6th ...
![Page 16: Arquitetura e Organização de Computadores 1 José Hiroki Saito Igor Marçal Botamede Spadoni – PESCD.](https://reader035.fdocument.pub/reader035/viewer/2022062404/552fc103497959413d8beaea/html5/thumbnails/16.jpg)
Multiplicação leva mais tempo que soma Operações de ponto flutuante levam
mais tempo que operações de inteiros Acessar memória leva mais tempo que
acessar registradores Importante: alterando o tempo de ciclo muitas vezes
altera o número de ciclos requerido para várias instruções
tempo
![Page 17: Arquitetura e Organização de Computadores 1 José Hiroki Saito Igor Marçal Botamede Spadoni – PESCD.](https://reader035.fdocument.pub/reader035/viewer/2022062404/552fc103497959413d8beaea/html5/thumbnails/17.jpg)
Computador A executa um programa em 10 segundos e tem um clock de 4 GHz
Computador B execute esse programa em 6 segundos e B exija 1,2 vez mais ciclos de clock do que o computador A
Qual a velocidade de clock de B?
17
![Page 18: Arquitetura e Organização de Computadores 1 José Hiroki Saito Igor Marçal Botamede Spadoni – PESCD.](https://reader035.fdocument.pub/reader035/viewer/2022062404/552fc103497959413d8beaea/html5/thumbnails/18.jpg)
18GHz de clockvelocidade
xx, de clockvelocidadex s
de clockvelocidade
clockxciclos dexecuçãotempo de e
xclockciclos de
x
clockciclos de
de clockvelocidade
clockciclos de xecuçãotempo de e
B
B
B
AB
A
A
A
AA
8
104021 6
2,1
ciclos 1040
104 s 10
9
9
9
![Page 19: Arquitetura e Organização de Computadores 1 José Hiroki Saito Igor Marçal Botamede Spadoni – PESCD.](https://reader035.fdocument.pub/reader035/viewer/2022062404/552fc103497959413d8beaea/html5/thumbnails/19.jpg)
Um dado programa irá requerer Certo número de instruções (instruções de
máquina)
Certo número de ciclos
Certo tempo em segundos
![Page 20: Arquitetura e Organização de Computadores 1 José Hiroki Saito Igor Marçal Botamede Spadoni – PESCD.](https://reader035.fdocument.pub/reader035/viewer/2022062404/552fc103497959413d8beaea/html5/thumbnails/20.jpg)
A única medida completa e confiável do desempenho é o tempo
20
ograma
SegundosTempo
clockCiclos de
SegundosX
Instruções
clockCiclos de X
ograma
InstruçõesTempo
Pr
Pr
Componentes de desempenho Unidades de medidaTempo de execução da CPU de um programa Segundos para o programa
Contagem de instruções Instruções executadas para o programa
CPINúmero médio de ciclos de clock por instrução
Tempo do ciclo de clock Segundos por ciclo de clock
![Page 21: Arquitetura e Organização de Computadores 1 José Hiroki Saito Igor Marçal Botamede Spadoni – PESCD.](https://reader035.fdocument.pub/reader035/viewer/2022062404/552fc103497959413d8beaea/html5/thumbnails/21.jpg)
MIPS Milhões de instruções por segundo
Número de instruções de código de máquina que o processador pode executar em um segundo
Porém não é possível usá-lo como medida de desempenho
21
610xecução X Tempo de E
ruçõesNº de InstMIPS
![Page 22: Arquitetura e Organização de Computadores 1 José Hiroki Saito Igor Marçal Botamede Spadoni – PESCD.](https://reader035.fdocument.pub/reader035/viewer/2022062404/552fc103497959413d8beaea/html5/thumbnails/22.jpg)
22
Componente de hardware ou software
Afeta o quê? Como?
Algoritmo
Contagem de instruções,
possivelmente o CPI
Determina o Nº de instruções do programa fonte executadas.
Pode favorecer instruções mais lentas ou rápidas.
Linguagem de Programação
Contagem de instruções e CPI
Instruções da linguagem traduzidas em instrução do processador.
Pode usar chamadas indiretas (CPI mais altos).
CompiladorContagem de
instruções e CPI
Afeta a contagem de instruções e a média de CPI já que determina a
tradução da linguagem de programação para instrução
Conjunto de instruções
Contagem de instruções,
velocidade de clock e CPI
Afeta as instruções necessárias para função, o custo em ciclos de cada instrução e a velocidade geral do
processador.
![Page 23: Arquitetura e Organização de Computadores 1 José Hiroki Saito Igor Marçal Botamede Spadoni – PESCD.](https://reader035.fdocument.pub/reader035/viewer/2022062404/552fc103497959413d8beaea/html5/thumbnails/23.jpg)
O desempenho é determinado pelo tempo de execução
As variáveis abaixo não determinam o desempenho: N° de ciclos para executar um programa; N° de instruções num programa; N° de ciclos por segundo; N° médio de ciclos por instrução; e N° médio de instruções por segundo.
![Page 24: Arquitetura e Organização de Computadores 1 José Hiroki Saito Igor Marçal Botamede Spadoni – PESCD.](https://reader035.fdocument.pub/reader035/viewer/2022062404/552fc103497959413d8beaea/html5/thumbnails/24.jpg)
Considerar que temos duas implementações da mesma arquitetura do conjunto de instruções (ISA). Para certo programa:Máquina A tem um tempo de ciclo de clock de 250 ps e um CPI de 2.0 Machine B tem um tempo de ciclo de clock de 500 ps e um CPI de 1.2
Qual máquina é mais rápida para esse programa, e por quanto?
![Page 25: Arquitetura e Organização de Computadores 1 José Hiroki Saito Igor Marçal Botamede Spadoni – PESCD.](https://reader035.fdocument.pub/reader035/viewer/2022062404/552fc103497959413d8beaea/html5/thumbnails/25.jpg)
25
2,1500
600
6005002,1
5002500,2
21
02
A
B
xIps
xIps
xecuçãotempo de e
xecuçãotempo de en
xIpspsxIx
clock ciclo de x tempo doclockciclos de Tempo
xIpspsxIx
clock ciclo de x tempo doclockciclos de Tempo
,Ixclockciclos de
,Ixclockciclos de
BBB
AAA
B
A
![Page 26: Arquitetura e Organização de Computadores 1 José Hiroki Saito Igor Marçal Botamede Spadoni – PESCD.](https://reader035.fdocument.pub/reader035/viewer/2022062404/552fc103497959413d8beaea/html5/thumbnails/26.jpg)
Um projetista de compilador está tentando decidir entre duas sequências de código para uma máquina particular. Baseado numa implementação de hardware, existem 3 classes diferentes de instruções: Classe A, Classe B, e Classe C, que requerem um, dois e três ciclos (respectivamente).
A primeira sequência tem 5 instruções: 2 de A, 1 de B, e 2 de CA segunda sequência tem 6 instruções: 4 de A, 1 de B, e 1 de C.
Qual sequência será mais rápida? Quanto?Qual o CPI para cada sequência?
![Page 27: Arquitetura e Organização de Computadores 1 José Hiroki Saito Igor Marçal Botamede Spadoni – PESCD.](https://reader035.fdocument.pub/reader035/viewer/2022062404/552fc103497959413d8beaea/html5/thumbnails/27.jpg)
Determinação melhor do desempenho executando aplicações reais Usa programas típicos de carga de trabalho (workload) desejada Ou, típicos de classes de aplicações desejadas
ex., compiladores/editores, aplicações científicas, gráficos, etc.
Pequenos benchmarks Bom para arquitetos e projetistas Fácil para padronização Podem ser abusados (usados erroneamente)
SPEC (System Performance Evaluation Cooperative) As companhias adotam um conjunto de programas reais
Podem ser abusados
![Page 28: Arquitetura e Organização de Computadores 1 José Hiroki Saito Igor Marçal Botamede Spadoni – PESCD.](https://reader035.fdocument.pub/reader035/viewer/2022062404/552fc103497959413d8beaea/html5/thumbnails/28.jpg)
Gráfico de “melhoramento” do compilador e desempenho
0
100
200
300
400
500
600
700
800
tomcatvfppppmatrix300eqntottlinasa7doducspiceespressogcc
BenchmarkCompiler
Enhanced compiler
SPEC
perform
ance
ratio
![Page 29: Arquitetura e Organização de Computadores 1 José Hiroki Saito Igor Marçal Botamede Spadoni – PESCD.](https://reader035.fdocument.pub/reader035/viewer/2022062404/552fc103497959413d8beaea/html5/thumbnails/29.jpg)
Benchmark Description
go Artificial intelligence; plays the game of Gom88ksim Motorola 88k chip simulator; runs test programgcc The Gnu C compiler generating SPARC codecompress Compresses and decompresses file in memoryli Lisp interpreterijpeg Graphic compression and decompressionperl Manipulates strings and prime numbers in the special-purpose programming language Perlvortex A database program
tomcatv A mesh generation programswim Shallow water model with 513 x 513 gridsu2cor quantum physics; Monte Carlo simulationhydro2d Astrophysics; Hydrodynamic Naiver Stokes equationsmgrid Multigrid solver in 3-D potential fieldapplu Parabolic/elliptic partial differential equationstrub3d Simulates isotropic, homogeneous turbulence in a cubeapsi Solves problems regarding temperature, wind velocity, and distribution of pollutantfpppp Quantum chemistrywave5 Plasma physics; electromagnetic particle simulation
![Page 30: Arquitetura e Organização de Computadores 1 José Hiroki Saito Igor Marçal Botamede Spadoni – PESCD.](https://reader035.fdocument.pub/reader035/viewer/2022062404/552fc103497959413d8beaea/html5/thumbnails/30.jpg)
Dobrando a taxa de clock dobra o desempenho?
Uma máquina com uma taxa de clock lenta pode ter um melhor desempenho?
Clock rate (MHz)
SP
EC
int
2
0
4
6
8
3
1
5
7
9
10
200 25015010050
Pentium
Pentium Pro
PentiumClock rate (MHz)
SP
EC
fp
Pentium Pro
2
0
4
6
8
3
1
5
7
9
10
200 25015010050
![Page 31: Arquitetura e Organização de Computadores 1 José Hiroki Saito Igor Marçal Botamede Spadoni – PESCD.](https://reader035.fdocument.pub/reader035/viewer/2022062404/552fc103497959413d8beaea/html5/thumbnails/31.jpg)
As decisões de projeto devem favorecer os casos mais freqüentes: tornar rápido o caso mais comum
A lei de Amdahl define o speed up (S), que consiste do ganho em desempenho que pode ser obtido ao melhorar determinada característica do computador
31
![Page 32: Arquitetura e Organização de Computadores 1 José Hiroki Saito Igor Marçal Botamede Spadoni – PESCD.](https://reader035.fdocument.pub/reader035/viewer/2022062404/552fc103497959413d8beaea/html5/thumbnails/32.jpg)
Speed Up (S)
32
melhoria ausar sem operação a todade desempenho
melhoria a usando operação a todade desempenhoS
melhoria a usando operação a todade execução de tempomelhoria ausar sem operação a todade execução de tempoS
![Page 33: Arquitetura e Organização de Computadores 1 José Hiroki Saito Igor Marçal Botamede Spadoni – PESCD.](https://reader035.fdocument.pub/reader035/viewer/2022062404/552fc103497959413d8beaea/html5/thumbnails/33.jpg)
O speed up a partir de alguma melhoria depende de dois fatores
A fração do tempo de computação na máquina original que pode tirar vantagem da melhoria (Fmelhoria): se 20s do tempo de execução de um programa, que leva 60s para ser executado, podem ser melhorados, a fração é 20/60;
O ganho obtido com a execução da melhoria (Smelhoria): se a melhoria leva 2s para ser executada e a original leva 5s, o ganho é 5/2.
33
![Page 34: Arquitetura e Organização de Computadores 1 José Hiroki Saito Igor Marçal Botamede Spadoni – PESCD.](https://reader035.fdocument.pub/reader035/viewer/2022062404/552fc103497959413d8beaea/html5/thumbnails/34.jpg)
O tempo de execução usando a máquina original com a melhoria (tenovo) será igual ao tempo gasto usando a parte da máquina sem melhoria mais o tempo gasto usando a melhoria
34
melhoria
melhoriamelhoriaantigonovo S
FFtete 1
![Page 35: Arquitetura e Organização de Computadores 1 José Hiroki Saito Igor Marçal Botamede Spadoni – PESCD.](https://reader035.fdocument.pub/reader035/viewer/2022062404/552fc103497959413d8beaea/html5/thumbnails/35.jpg)
O speed up total (Stotal) é a razão entre os tempos de execução
35
melhoria
melhoriamelhoria
novo
antigototal
S
FFte
teS
1
1
![Page 36: Arquitetura e Organização de Computadores 1 José Hiroki Saito Igor Marçal Botamede Spadoni – PESCD.](https://reader035.fdocument.pub/reader035/viewer/2022062404/552fc103497959413d8beaea/html5/thumbnails/36.jpg)
Suponha uma melhoria que executa 10 vezes mais rápido do que o original, mas é utilizada somente 40% do tempo
A lei de Amdahl serve como um indicativo de quanto uma melhoria irá aumentar o desempenho total e como distribuir recursos para melhorar a relação custo/desempenho.
O objetivo é investir recursos proporcionalmente aonde o tempo é gasto
36
4.0melhoriaF
10melhoriaS
56.164.01
104.0
6.0
1
totalS
![Page 37: Arquitetura e Organização de Computadores 1 José Hiroki Saito Igor Marçal Botamede Spadoni – PESCD.](https://reader035.fdocument.pub/reader035/viewer/2022062404/552fc103497959413d8beaea/html5/thumbnails/37.jpg)
Desempenho é específico a um programa particular
O tempo de execução total é um resultado do desempenhoPara que uma dada arquitetura melhore
deve-se:Aumentar a taxa de clock (sem afetar o CPI)Melhorar a organização do processador para
diminuir o CPIMelhorar o compilador para diminuir o CPI e/ou
número de instruções
![Page 38: Arquitetura e Organização de Computadores 1 José Hiroki Saito Igor Marçal Botamede Spadoni – PESCD.](https://reader035.fdocument.pub/reader035/viewer/2022062404/552fc103497959413d8beaea/html5/thumbnails/38.jpg)
Cuidado: não esperar que a melhoria do desempenho num aspecto de uma máquina melhore sempre o seu desempenho total!
38
![Page 39: Arquitetura e Organização de Computadores 1 José Hiroki Saito Igor Marçal Botamede Spadoni – PESCD.](https://reader035.fdocument.pub/reader035/viewer/2022062404/552fc103497959413d8beaea/html5/thumbnails/39.jpg)
FIM
39
![Page 40: Arquitetura e Organização de Computadores 1 José Hiroki Saito Igor Marçal Botamede Spadoni – PESCD.](https://reader035.fdocument.pub/reader035/viewer/2022062404/552fc103497959413d8beaea/html5/thumbnails/40.jpg)
40