• Nenhum resultado encontrado

O que é Arquitetura de Computadores?

N/A
N/A
Protected

Academic year: 2021

Share "O que é Arquitetura de Computadores?"

Copied!
8
0
0

Texto

(1)

CE-703 / ITA Paulo André Castro

O que é Arquitetura de

Computadores ?

Coordenação de um conjunto de níveis de abstração de um computador sobre um grande conjunto de forças de mudança

Arquitetura de Computadores = Arquitetura de Conjuntos de Instruções + Organização de Máquina

CE-703 / ITA Paulo André Castro

Forças

CE-703 / ITA Paulo André Castro

Cenário Constante em Computação

Desejo por melhor desempenho

Desejo por sistemas menores e mais leves

Desejo por maior capacidade de memória e armazenamento

Desejo por menor consumo de energia (menor dissipação de

calor) e conseqüentemente baterias menores e mais leves,

fundamental em sistemas embutidos

CE-703 / ITA Paulo André Castro

Por que melhor desempenho?

Softwares cada vez mais complexos

Sistemas gráficos com qualidade de imagem cada vez

maior

Novas aplicações

Reconhecimento de voz,

Processamento de imagem, (Localização, identificação,etc.)

Realidade Virtual, Servidores com enorme número de

usuários (Internet), etc.

Aplicações clássicas

Previsão de Tempo, Simulação complexa, Solução de

Problemas Matemáticos, etc.

Problemas e Limites

Há limites físicos para a tecnologia eletrônico-digital:

Custos de construção

Velocidade da luz;

Capacidade de integração dos circuitos;

Distância entre componentes de um circuito;

Superaquecimento e custo de refrigeração

Alternativas

Alternativas para obtenção de computadores mais

poderosos:

1.

Avanços na tecnologia eletrônico-digital;

2.

Aperfeiçoamento da arquitetura de computadores;

3.

Utilização de vários processadores num único

computador;

4.

Interligação de computadores entre si (redes de

(2)

CE-703 / ITA Paulo André Castro

Situando Organização de

Máquina

CE-703 / ITA Paulo André Castro

Aperfeiçoamentos na

Arquitetura de Computadores

Arquitetura de Conjunto de Instrução

Pipeline para diminuir a ociosidade da CPU no ciclo de instrução. Emissão de várias instruções para execução, em processamento superescalar.

Melhor organização dos circuitos aritméticos para se obter muitos resultados intermediários simultâneos.

CE-703 / ITA Paulo André Castro

Aperfeiçoamentos na

Arquitetura de Computadores

Organização de Máquinas

Memória cache para melhorar as interações entre memória e CPU. Memória entrelaçada para aumentar a largura de banda do sistema de memória

Utilização de processadores de entrada e saída em paralelo com a CPU, em multiprogramação e time sharing.

CE-703 / ITA Paulo André Castro

Situando Arquitetura de

Conjunto de Instruções

Por que estudar

Arquitetura de Computadores?

Para entender melhor a estrutura e o funcionamento dos computadores Para entender as soluções de compromisso(tradeoffs) entre vários componentes Para entender melhor o impacto das tendências da tecnologia e forças de mercado sobre a evolução dos computadores

Para aprender a utilizar técnicas de otimização de desempenho em sistemas computacionais (software ou hardware)

Para estar apto a fazer projeto de sistemas embutidos e desenvolvimento de software embutido de modo mais eficiente, bem como melhores decisões de compra de hardware

Computação: Um pouco de

História...

Pré-história

Máquinas de Calcular

Ábacos Chineses (há mais de 2000 anos) Calculadoras Mecânicas (Pascal e Leibniz) ~1650

História

O computador mecânico de Charles Babbage

A primeira programadora: Ada (~1840)

(3)

CE-703 / ITA Paulo André Castro

Mais um pouco de História

O computador Eletrônico: Von Neumman (década de 40)

Instruções na Memória (ao contrário de cartões perfurados)

usado até hoje!

Primeiros Computadores (por volta de 1945...)

Z-1(alemão), Mark I (americano), ENIAC (americano, 500

multiplicações por segundo!)

CE-703 / ITA Paulo André Castro

ENIAC (Electronic Numerical Integrator

and Calculator)

CE-703 / ITA Paulo André Castro

Evolução

De 1946 para cá, a tecnologia eletrônico-digital

evoluiu muito e continua a evoluir:

Relés eletro-mecânicos, válvulas eletrônicas,

transistores, circuitos impressos, circuitos integrados

(MSI, LSI, VLSI, ULSI), fibra ótica, supercondutividade,

raio laser, troca de silício por arsenato de gálio, etc..

O ENIAC tinha 24 metros de extensão, algumas

toneladas e capacidade de operar 500

multiplicações/segundo

Um iPad 2 tem capacidade de 168.9MFLOPs e um

iPhone 33.3 MFLOPs

CE-703 / ITA Paulo André Castro

Evolução da Unidades

Funcionais

Os primeiros micros só tinham hardware para somar e

subtrair números inteiros.

Multiplicação e divisão de inteiros e operações com números

reais eram realizadas por software.

Hoje essas últimas e outras funções tais como as

trigonométricas, exponenciais e logarítmicas já são

implementadas por hardware.

Além disso esse hardware vem sendo aperfeiçoado.

Os primeiros

Microprocessadores

O Intel 4004 foi o primeiro chip a conter todos os

elementos de uma CPU.

Fabricado em 1971, trazia ao mundo os microcomputadores.

Somava números de 4 bits e a multiplicação era obtida por

software, através de repetidas adições.

O Intel 8008 foi o primeiro microprocessador de 8

bits; introduzido no mercado em 1972; duas vezes

mais complexo que o 4004.

Ambos processadores, o 4004 e o 8008, foram

projetados para aplicações especificas.

Os processadores x86

Intel 8088 e 8086

São os primeiros microprocessadores de 16 bits da Intel;

lançados no mercado em 1978.

Para aritmética de ponto-flutuante, existe o

coprocessador 8087, opcional.

Diferenças Básicas

Barramento externo: do 8088, 8 bits; do 8086, 16 bits.

Buffer de instruções: do 8088, 4 bytes, do 8086, 6 bytes.

(4)

CE-703 / ITA Paulo André Castro

Registradores no 8086

CE-703 / ITA Paulo André Castro

Modelo de

Memória do

8086

CE-703 / ITA Paulo André Castro

Mais Processadores x86

Intel 80486: a partir de 1989

Uso de sofisticada tecnologia de memória cache e de pipeline de instruções;

Coprocessador de ponto-flutuante passou a ser incorporado ao processador principal.

Pentium: a partir de 1992

Computador superescalar;

Cache de instruções separada de cache de dados;

Uso de tecnologia agressiva para reduzir os efeitos negativos das instruções de desvio condicional no desempenho superescalar;

Core 2: a partir de 2006

Computadores com múltiplos núcleos: Duo, quad, extreme

CE-703 / ITA Paulo André Castro

Registradores do Pentium e de seu ancestral o 8086

A arquitetura x86

O x86 não é tão complexo assim – ele só não faz muito sentido. (Mike

Johnson, Líder de projeto do 80x86 na AMD, relatório de microprocessador

(1994))

Por isso, durante a maior parte do curso estaremos utilizando processadores RISC como exemplos e como veremos a maior parte do sistemas embutidos utilizam processadores RISC

Os cinco componentes clássicos

de um Computador

(5)

CE-703 / ITA Paulo André Castro

Organização Simples

CE-703 / ITA Paulo André Castro

Exemplo de

Arquitetura de

um Computador

Atual

CE-703 / ITA Paulo André Castro

O Processador em Funcionamento:

Executando Instruções

Em linhas gerais, a execução de uma instrução

pode ser dividida nas seguintes fases:

1. Recuperação do código da operação

2. Decodificação do código da operação

3. Recuperação dos operandos

4. Execução propriamente dita

5. Armazenamento dos resultados

As fases que envolvem acesso à memória

podem ser dez vezes mais lentas que as demais

ou até mais lentas

Um processsador é um Software implementado em

Hardware!

CE-703 / ITA Paulo André Castro

Tipos de Processadores segundo

posição dos operandos e resultado

Processadores com Acumulador: Operações envolvem um

registrador especial e [em alguns casos] a memória.

Processadores com Registradores de Propósito Geral: Os

operandos podem estar em vários registradores ou mesmo na

memória.

Processadores de Pilha: instruções e operandos ficam

armazenados em uma estrutura de dados do tipo Pilha na

memória.

Processadores com Acumulador

Exemplo de Funcionamento de um Processador com

Acumulador

Comparação simples versus Processador com

Registradores de Propósito Geral

Processador com Acumulador:

Um Caso Simples

(6)

CE-703 / ITA Paulo André Castro

Microprograma

da CPU com

Acumulador

CE-703 / ITA Paulo André Castro

Exemplo de programa

em Processador com Acumulador

Pseudo-código:

T1=F+G

T1=(H-I)*T1

T2=E*F

X=A+B

X=((C-D)*X-T2)/T1

Equivalente a:

Qual o código assembly correspondente?

)

(

*

)

(

)

*

(

)

(

*

)

(

G

F

I

H

F

E

B

A

D

C

X

+

+

=

CE-703 / ITA Paulo André Castro

Acumulador x Registradores de

Propósitos Gerais

CE-703 / ITA Paulo André Castro

Pergunta...

Considerando a seguinte divisão de fases:

1. Recuperação do código da operação

2. Decodificação do código da operação

3. Recuperação dos operandos

4. Execução propriamente dita

5. Armazenamento dos resultados

Há algum problema intrínseco de desempenho na

arquitetura com acumulador? Qual?

Novos processadores

As tarefas básicas ocorrem em todos os processadores:

1. Recuperação do código da operação

2. Decodificação do código da operação

3. Recuperação dos operandos

4. Execução propriamente dita

5. Armazenamento dos resultados

Como isto é feito e/ou organizado muda (muito)

principalmente por:

DESEMPENHO

Evolução dos desempenhos dos

processadores

(7)

CE-703 / ITA Paulo André Castro

Como medir desempenho?

Como se mede o impacto de um melhoria no desempenho de

um computador?

Clock? FLOPS?

Desempenho (performance) deve ser medida através de um

conjunto de tarefas executadas por unidade de tempo ?

Quanto maior melhor

Desempenho deve ser medida pelo tempo gasto para realizar

uma determinada tarefa ?

Quanto menor melhor

CE-703 / ITA Paulo André Castro

Medidas de Desempenho

Throughput: Número de tarefas concluídas por

unidade de tempo. Por exemplo, instruções/segundo.

MFLOPs , Mbps.

Tempo de resposta (latência): Tempo consumido para

executar uma determinada tarefa ou conjunto de

tarefas

CE-703 / ITA Paulo André Castro

Perguntas ?

Aumentar o throughput sempre melhora o tempo de

resposta?

Diminuir o tempo de resposta sempre melhora o

throughput?

CE-703 / ITA Paulo André Castro

Modelo Simples

Produtor-Consumidor

• Latência (Tempo de Resposta): tempo médio para a conclusão de uma tarefa.

•Para minimizar: •A fila deveria estar vazia •O servidor deveria estar ocioso(idle)

Modelo Simples

Produtor-Consumidor

• Throughput (“Taxa de Finalização”): Número de tarefas concluídas por unidade de tempo

•Para maximizar:

•A fila nunca deveria estar vazia

Aumentando o Throughput

• Em geral, throughput pode ser incrementado

•Colocando mais hardware (reduzindo latência relacionada a carga) • Tempo de resposta é muito mais difícil de reduzir

(8)

CE-703 / ITA Paulo André Castro

Aumento de Throughput X

Tempo de Resposta

CE-703 / ITA Paulo André Castro

Desempenho

Estejamos preocupados com throughput ou latência, o mais

importante é o tempo total de conclusão dos programas de

interesse do usuário.

O computador mais rápido é aquele que executa suas tarefas em menor tempo

O fundamental é saber especificar quais as tarefas relevantes

para aquele computador

CE-703 / ITA Paulo André Castro

Definindo Desempenho

Considerando tempo de execução, temos:

Desempenho(x)= 1/TempoExecução(X)

Logo, dizer que X é n vezes mais rápido que Y, significa:

ou,

n

y

Desempenho

x

Desempenho

=

)

(

)

(

n

X

Execução

Tempo

Y

Execução

Tempo

=

)

(

_

)

(

_

CE-703 / ITA Paulo André Castro

Medindo o aumento de

desempenho

Aumento de desempenho ocorrido, devido a uma melhoria E.

Existem várias técnicas, componentes e meios de comunicação que podem ser alvo de aperfeiçoamentos. Por outro lado, existem também vários “tipos” de instruções quais devem ser melhoradas preferencialmente.

O que deve ser priorizado para possível melhoria? Caso comum e a Lei de Amdahl

Lei de Amdahl

O ganho de desempenho possível de um dado

melhoramento é limitado pela fração de tempo que a

característica melhorada é usada.

Suponha que um aperfeiçoamento ofereça um ganho de

desempenho S para uma fração do tempo F. Qual o ganho

de desempenho?

Referências

Documentos relacionados

Pode-se observar na Tabela 3 que, na ausência de irrigação, os coqueiros provenientes de mudas com sete meses de idade apr sentaram uma emissão foliar, nos 12 primeiros meses apds

Inserido nesse contexto expandido, o rádio desdobra-se em novos formatos sonoros. Neste trabalho, nos dedicamos a observar como se dá a adaptação de um mesmo programa

(VIDE DOCUMENTOS COMPLEMENTARES RELATORIO DE OBRAS E SERVICOS SENAI). d) A empresa contratada deverá encaminhar, juntamente com a nota fiscal / fatura, as Certidões

Parte da razão pela qual os modelos estatísticos estão se tornando mais úteis nas humanidades é que novos métodos tornam possível o uso de centenas ou milhares de

[r]

Nesse contexto o presente trabalho visa o levantamento de custos e da viabilidade econômica para implantação de um reflorestamento de caixeta,

Manuel I ouvir missa com toda a corte, a Nossa Senhora de Belém, no Restelo, "na qual missa houve sermão, que fez Dom Diogo Ortiz, bispo de Ceuta, que depois foi de Viseu,

Fizemos o máximo para reduzir e simplificar as regras do nosso site. Por isso, separamos abaixo os pontos mais importantes para você, que também podem ser lidos de forma