• Nenhum resultado encontrado

ARQUITETURA DE COMPUTADORES

N/A
N/A
Protected

Academic year: 2021

Share "ARQUITETURA DE COMPUTADORES"

Copied!
30
0
0

Texto

(1)

01001111 01110010 01100111 01100001 01101110 01101001 01111010 01100001 11100111 11100011 01101111 00100000 01100100 01100101 00100000 01000011 01101111 01101101 01110000 01110101 01110100 01100001 01100100 01101111 01110010 01100101 01110011

ARQUITETURA DE

COMPUTADORES

Desempenho

Prof Daves Martins

Msc Computação de Alto Desempenho

Email: daves.martins@ifsudestemg.edu.br

(2)

Fundamentos de Organização de Computadores

(3)
(4)

01001111 01110010 01100111 01100001 01101110 01101001 01111010 01100001 11100111 11100011 01101111 00100000 01100100 01100101 00100000 01000011 01101111 01101101 01110000 01110101 01110100 01100001 01100100 01101111 01110010 01100101 01110011

Introdução

Tempo de relógio real necessário para execução de um programa:

– acessos a disco

– atividades de I/O

– overhead do sistema operacional, da rede, ...

• no entanto, seguidamente um sistema executa diversos programas

simultaneamente

• throughput é uma medida do número de tarefas executada por unidade de

tempo

O que otimizar?

– tempo de resposta de um programa isolado?

– throughput do sistema?

(5)

01001111 01110010 01100111 01100001 01101110 01101001 01111010 01100001 11100111 11100011 01101111 00100000 01100100 01100101 00100000 01000011 01101111 01101101 01110000 01110101 01110100 01100001 01100100 01101111 01110010 01100101 01110011

Introdução

Distinção entre tempo de:

– relógio real gasto em um programa, e

– CPU efetivamente gasto com tarefas específicas do programa

• não inclui tempo de execução de outros programas, tempo de espera por

I/O, ...

O tempo de CPU está dividido em tempo de:

– usuário: tempo gasto executando instruções do programa do usuário

– sistema: tempo gasto com tarefas do S.O. necessárias para a execução

(6)

01001111 01110010 01100111 01100001 01101110 01101001 01111010 01100001 11100111 11100011 01101111 00100000 01100100 01100101 00100000 01000011 01101111 01101101 01110000 01110101 01110100 01100001 01100100 01101111 01110010 01100101 01110011

Introdução

O desempenho é conseqüência de otimizações feitas em 3

dimensões do hardware:

• arquitetura: processadores e instruções otimizadas

• organização: paralelismo e memória cache

• tecnologia: velocidade de chaveamento das portas lógicas e

tempo de acesso à memória

O desempenho também depende no entanto do compilador

– geração de código otimizada

(7)

01001111 01110010 01100111 01100001 01101110 01101001 01111010 01100001 11100111 11100011 01101111 00100000 01100100 01100101 00100000 01000011 01101111 01101101 01110000 01110101 01110100 01100001 01100100 01101111 01110010 01100101 01110011

Métricas Básica

ciclos de clock

= intervalos básicos de tempo nos quais são

executadas as operações elementares de uma instrução

– transferências de valores entre registradores

– operações aritméticas na ULA

período do clock T

= tempo de duração de um ciclo de clock. Por

exemplo: 1 ns

frequência de operação f

= número de ciclos de clock por unidade

de tempo

f = 1 / T

se T = 1 ns

(8)

01001111 01110010 01100111 01100001 01101110 01101001 01111010 01100001 11100111 11100011 01101111 00100000 01100100 01100101 00100000 01000011 01101111 01101101 01110000 01110101 01110100 01100001 01100100 01101111 01110010 01100101 01110011

Métricas Básicas

tempo de CPU = nº de ciclos de clock X período do clock

de um programa do programa

por exemplo:

– programa gasta 10.10

6

ciclos

– período do clock é 1 ns ( 1.10

-9

)

tempo de CPU do programa = 10.10

6

x 1.10

-9

= 10.10

-3

= 10 ms

alternativamente:

tempo de CPU de um programa = nº de ciclos de clock do programa

freqüência do clock

(9)

01001111 01110010 01100111 01100001 01101110 01101001 01111010 01100001 11100111 11100011 01101111 00100000 01100100 01100101 00100000 01000011 01101111 01101101 01110000 01110101 01110100 01100001 01100100 01101111 01110010 01100101 01110011

Métricas Básicas

Múltiplo Equivalente decimal

Nome

Símbolo

10

−3

0,001

milissegundo

ms

10

−6

0,000001

microssegundo

µs

10

−9

0,000000001

nanossegundo

ns

10

−12

0,000000000001

picossegundo

ps

10

−15

0,000000000000001

fentossegundo

fs

10

−18

0,000000000000000001

atossegundo

as

10

−21

0,000000000000000000001

zeptossegundo

zs

10

−24

0,000000000000000000000001

yoctossegundo

ys

(10)

01001111 01110010 01100111 01100001 01101110 01101001 01111010 01100001 11100111 11100011 01101111 00100000 01100100 01100101 00100000 01000011 01101111 01101101 01110000 01110101 01110100 01100001 01100100 01101111 01110010 01100101 01110011

Métricas Básicas

Formas de aumento do desempenho:

– diminuir o período do clock (tecnologia, organização)

– diminuir nº de ciclos necessários para execução do

(11)

01001111 01110010 01100111 01100001 01101110 01101001 01111010 01100001 11100111 11100011 01101111 00100000 01100100 01100101 00100000 01000011 01101111 01101101 01110000 01110101 01110100 01100001 01100100 01101111 01110010 01100101 01110011

Métricas Básicas

nº de ciclos de = nº médio de ciclos de X nº instruções instrução

clock do programa clock por instrução do programa

O nº médio de ciclos de clock por instrução (CPI) é uma média sobre

todas as instruções executadas no programa.

Exercício:

– duas máquinas implementam o mesmo conjunto de instruções

– um mesmo programa é rodado em ambas as máquinas

– máquina A tem período de clock de 1 ns e CPI = 2.0 para este

programa

– máquina B tem período de clock de 2 ns e CPI = 1.2 para o mesmo

programa

(12)

01001111 01110010 01100111 01100001 01101110 01101001 01111010 01100001 11100111 11100011 01101111 00100000 01100100 01100101 00100000 01000011 01101111 01101101 01110000 01110101 01110100 01100001 01100100 01101111 01110010 01100101 01110011

Resolvendo o exemplo

Exercício:

– duas máquinas implementam o mesmo conjunto de instruções

– um mesmo programa é rodado em ambas as máquinas

– máquina A tem período de clock de 1 ns e CPI = 2.0 para este programa

– máquina B tem período de clock de 2 ns e CPI = 1.2 para o mesmo programa

Sabemos que:

nº de ciclos de

= nº médio de ciclos de X nº instruções instrução

clock do programa

clock por instrução do programa

tempo de CPU =

nº de ciclos de clock

X período do clock

de um programa

do programa

Portanto:

tempo de CPU = nº médio de ciclos de X nº instruções instrução X período do clock

de um programa clock por instrução do programa

(13)

01001111 01110010 01100111 01100001 01101110 01101001 01111010 01100001 11100111 11100011 01101111 00100000 01100100 01100101 00100000 01000011 01101111 01101101 01110000 01110101 01110100 01100001 01100100 01101111 01110010 01100101 01110011

Resolvendo o exemplo

Exercício:

– um mesmo programa é rodado em ambas as máquinas (

mesmo número de instruções - I

)

– máquina A tem período de clock de 1 ns e CPI = 2.0 para este programa

– máquina B tem período de clock de 2 ns e CPI = 1.2 para o mesmo programa

tempo de CPU = nº médio de ciclos de X nº instruções instrução X período do clock

de um programa clock por instrução do programa

Máquina A:

tempo de CPU = 2.0 X

I (nro. instruções)

X 1 ns

de um programa

tempo de CPU =

2.0xI ns

de um programa

Máquina B:

tempo de CPU = 1.2 X

I (nro. instruções)

X 2 ns

de um programa

tempo de CPU =

2.4xI ns

(14)

01001111 01110010 01100111 01100001 01101110 01101001 01111010 01100001 11100111 11100011 01101111 00100000 01100100 01100101 00100000 01000011 01101111 01101101 01110000 01110101 01110100 01100001 01100100 01101111 01110010 01100101 01110011

Métricas Básicas

tempo de CPU = nº de instruções X CPI X período do clock

tempo de CPU = nº de instruções X CPI

freqüência do clock

Como obter estes valores?

– tempo de CPU é medido executando-se o programa

– período (ou frequência) do clock é divulgado pelo fabricante

– nº de instruções e CPI são mais difíceis de obter

• nº de instruções depende da arquitetura e do compilador

• CPI depende da organização e do programa

– conhecendo-se nº de instruções ou CPI, pode-se determinar o outro

(15)
(16)

01001111 01110010 01100111 01100001 01101110 01101001 01111010 01100001 11100111 11100011 01101111 00100000 01100100 01100101 00100000 01000011 01101111 01101101 01110000 01110101 01110100 01100001 01100100 01101111 01110010 01100101 01110011

Para entendermos performance, ou qual máquina tem a melhor, primeiro

precisamos definir o que o mesmo significa.

Resumidamente, a performance de uma máquina é responsável pela

eficácia de todo o sistema, composto pelo hardware e pelo software.

Vamos então descrever em detalhes os principais fatores que influenciam

positivamente e negativamente a performance de uma máquina, já que é um

dos fatores mais importantes, tanto para quem irá comprar quanto pra que

irá projetar o mesmo.

(17)

01001111 01110010 01100111 01100001 01101110 01101001 01111010 01100001 11100111 11100011 01101111 00100000 01100100 01100101 00100000 01000011 01101111 01101101 01110000 01110101 01110100 01100001 01100100 01101111 01110010 01100101 01110011

DEFININDO PERFORMANCE

No computador a performance pode ser definida de várias maneiras

diferentes.

Se você rodar o mesmo programa em duas estações de trabalho

diferentes, é lícito afirmar que a mais rápida será a que terminar primeiro.

Se

você

estiver

analisando

as

instalações

de

um

centro

de

processamento com dois computadores que funcionam em regime de tempo

compartilhado rodando tarefas por diversos usuários, podemos afirmar que

a máquina mais rápida é a que consegue executar o maior número de

programas por dia.

(18)

01001111 01110010 01100111 01100001 01101110 01101001 01111010 01100001 11100111 11100011 01101111 00100000 01100100 01100101 00100000 01000011 01101111 01101101 01110000 01110101 01110100 01100001 01100100 01101111 01110010 01100101 01110011

Se você se colocar no papel de usuário de um computador, seu

principal interesse será reduzir o tempo de resposta – definido como

tempo decorrido entre o início e o fim do seu programa -, tempo esse

conhecido como tempo de execução.

Porém, se você estiver desempenhando o papel de gerente do centro

de computação, seu principal interesse será a quantidade total de trabalho

executado em um determinado intervalo de tempo, incluindo aí as

maneiras de maximizá-lo, que é o

throughput

.

DEFININDO PERFORMANCE

Resumindo, performance de um computador

esta ligado à atuação e desempenho.

(19)

01001111 01110010 01100111 01100001 01101110 01101001 01111010 01100001 11100111 11100011 01101111 00100000 01100100 01100101 00100000 01000011 01101111 01101101 01110000 01110101 01110100 01100001 01100100 01101111 01110010 01100101 01110011

Alguns dos fatores que influenciam a

performance do computador, são

por exemplo, velocidade do CPU,

RAM disponível, velocidade e

capacidade do disco rígido.

(20)

01001111 01110010 01100111 01100001 01101110 01101001 01111010 01100001 11100111 11100011 01101111 00100000 01100100 01100101 00100000 01000011 01101111 01101101 01110000 01110101 01110100 01100001 01100100 01101111 01110010 01100101 01110011

MEDIDAS DE

PERFORMANCE

Em computação, nos interessa o tempo de resposta,

expressões que definem o tempo total para se completar

uma determinada tarefa computacional, incluindo os

acessos a disco e à memória, as atividades de I/O, o

overhead introduzido pela ação do sistema operacional, e

tudo o mais.

O tempo em um computador é compartilhado e o

processador pode trabalhar em mais de um programa

simultaneamente.

(21)

01001111 01110010 01100111 01100001 01101110 01101001 01111010 01100001 11100111 11100011 01101111 00100000 01100100 01100101 00100000 01000011 01101111 01101101 01110000 01110101 01110100 01100001 01100100 01101111 01110010 01100101 01110011

O tempo de processador é o tempo gasto por ele na

execução das instruções dedicadas a um programa e não

inclui o tempo gasto com I/O, nem o tempo gasto para

executar

outros

programas

diferentes,

no

caso

dos

sistemas que compartilham o tempo do processador.

O conceito de tempo de processador reconhece a distinção

entre o tempo gasto por ele para executar instruções de

determinado programa, e o tempo total gasto na execução

desse programa – que inclui o tempo de I/O, o tempo de

acesso a disco e a memória, e o tempo dedicado ao SO e a

outros programas.

MEDIDAS DE

PERFORMANCE

(22)

01001111 01110010 01100111 01100001 01101110 01101001 01111010 01100001 11100111 11100011 01101111 00100000 01100100 01100101 00100000 01000011 01101111 01101101 01110000 01110101 01110100 01100001 01100100 01101111 01110010 01100101 01110011

Escolha de Programa para

Avaliar a Performance

Uma

alternativa

para

avaliar

a

performance

da

máquina é a utilização de

benchmarks

, que são

programas desenvolvidos especialmente para trabalhar

na medida da performance.

Na verdade, formam um wordload(carga de trabalho)

cujo objetivo é estimar a performance do wordload real,

utilizado por grupos de usuários.

(23)

01001111 01110010 01100111 01100001 01101110 01101001 01111010 01100001 11100111 11100011 01101111 00100000 01100100 01100101 00100000 01000011 01101111 01101101 01110000 01110101 01110100 01100001 01100100 01101111 01110010 01100101 01110011

Escolha de Programa para

Avaliar a Performance

O uso de benchmarks cuja performance dependa de

segmentos de código muito pequenos estimula a

realizações de otimização tanto na arquitetura quanto

no compilador, fazendo com que o sistema tenha uma

ótima performance quando executa o pequeno trecho

do benchmarck.

O conjunto de benchmarks para processador mais

conhecido

atualmente

é

o

o

SPEC

(System

Performance Evaluation Cooperative).

(24)

01001111 01110010 01100111 01100001 01101110 01101001 01111010 01100001 11100111 11100011 01101111 00100000 01100100 01100101 00100000 01000011 01101111 01101101 01110000 01110101 01110100 01100001 01100100 01101111 01110010 01100101 01110011

SPEC ‘89

Gráfico de “melhoramento” do compilador

e desempenho

0

1 0 0

2 0 0

3 0 0

4 0 0

5 0 0

6 0 0

7 0 0

8 0 0

to m ca tv

fp p p p

m a trix3 0 0

e q n t o tt

li

n a sa 7

d o d u c

s p ic e

e sp re s s o

g c c

B e n c h m a rk

C o m p ile r

E n h a n c e d c o m p ile r

S

P

E

C

p

e

rf

o

rm

a

n

c

e

r

a

ti

o

(25)
(26)

01001111 01110010 01100111 01100001 01101110 01101001 01111010 01100001 11100111 11100011 01101111 00100000 01100100 01100101 00100000 01000011 01101111 01101101 01110000 01110101 01110100 01100001 01100100 01101111 01110010 01100101 01110011

Tarefa

Descrição

Gerenciar os programas de

inicialização

Alguns programas são iniciados automaticamente quando você

inicia o Windows. Muitos desses programas abrindo ao mesmo

tempo podem tornar o computador lento.

Para desabilitar esses programas da inicialização e melhorar o

desempenho, use o Windows Defender.

Ajustar efeitos visuais

Você pode otimizar o desempenho alterando o modo de

exibição dos menus e janelas.

Ajustar opções de

indexação

As opções de indexação podem ajudá-lo a localizar o que você

está procurando de forma rápida e fácil no computador.

Ajustar as configurações de

energia

Altere as configurações relacionadas à energia, de forma que o

computador retorne às configurações de economia de energia

com

mais

eficiência,

e

ajuste

o

uso

da

bateria

para

computadores portáteis.

Limpeza de Disco

Esta ferramenta exclui arquivos desnecessários ou temporários

no disco rígido, para que você possa aumentar a quantidade de

espaço de armazenamento que possui.

(27)

01001111 01110010 01100111 01100001 01101110 01101001 01111010 01100001 11100111 11100011 01101111 00100000 01100100 01100101 00100000 01000011 01101111 01101101 01110000 01110101 01110100 01100001 01100100 01101111 01110010 01100101 01110011

Desempenho – exemplo

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?

(28)

01001111 01110010 01100111 01100001 01101110 01101001 01111010 01100001 11100111 11100011 01101111 00100000 01100100 01100101 00100000 01000011 01101111 01101101 01110000 01110101 01110100 01100001 01100100 01101111 01110010 01100101 01110011

Desempenho – exemplo

28

GHz

de clock

velocidade

x

x

,

de clock

velocidade

x

s

de clock

velocidade

clock

xciclos de

xecução

tempo de e

x

clock

ciclos de

x

clock

ciclos de

de clock

velocidade

clock

ciclos de

xecução

tempo de e

B

B

B

A

B

A

A

A

A

A

8

10

40

2

1

6

2

,

1

ciclos

10

40

10

4

s

10

9

9

9

=

=

=

=

=

=

(29)

01001111 01110010 01100111 01100001 01101110 01101001 01111010 01100001 11100111 11100011 01101111 00100000 01100100 01100101 00100000 01000011 01101111 01101101 01110000 01110101 01110100 01100001 01100100 01101111 01110010 01100101 01110011

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?

(30)

01001111 01110010 01100111 01100001 01101110 01101001 01111010 01100001 11100111 11100011 01101111 00100000 01100100 01100101 00100000 01000011 01101111 01101101 01110000 01110101 01110100 01100001 01100100 01101111 01110010 01100101 01110011

30

2

,

1

500

600

600

500

2

,

1

500

250

0

,

2

2

1

0

2

A

B

=

=

=

=

=

=

=

=

=

=

=

xIps

xIps

xecução

tempo de e

xecução

tempo de e

n

xIps

ps

x

Ix

clock

ciclo de

x tempo do

clock

ciclos de

Tempo

xIps

ps

x

Ix

clock

ciclo de

x tempo do

clock

ciclos de

Tempo

,

Ix

clock

ciclos de

,

Ix

clock

ciclos de

B

B

B

A

A

A

B

A

Referências

Documentos relacionados

Este trabalho buscou, através de pesquisa de campo, estudar o efeito de diferentes alternativas de adubações de cobertura, quanto ao tipo de adubo e época de

 Ambulância da marca Ford (viatura nº8), de matrícula XJ-23-45, dotada com sirene, luz rotativa e equipamento de comunicação (Emissor/Receptor com adaptador);.  Ambulância da

6.2.1 A avaliação socioeconômica visa priorizar as (os) candidatas (os) cujos os perfis socioeconômicos mais se adequam aos estudantes que o Galt Vestibulares

A assistência da equipe de enfermagem para a pessoa portadora de Diabetes Mellitus deve ser desenvolvida para um processo de educação em saúde que contribua para que a

Se você vai para o mundo da fantasia e não está consciente de que está lá, você está se alienando da realidade (fugindo da realidade), você não está no aqui e

In this work, improved curves are the head versus flow curves predicted based on the correlations presented in Table 2 and improved by a shut-off head prediction

Você também será solicitado(a) a fazer um relato autobiográfico, descrevendo fatos sobre sua vida pessoal e, em especial, sua carreira profissional. Confidencialidade: As