arquitetura de computadores moderna · computadores (hardware e software) com a finalidade de...

36
Arquitetura de Computadores Moderna Eduardo Barrére ([email protected]) DCC/UFJF Baseado no material do prof. Marcelo Lobosco

Upload: others

Post on 04-Jul-2020

1 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Arquitetura de Computadores Moderna · computadores (hardware e software) com a finalidade de entender/buscar o desempenho. Objetivos do Curso ... Microsoft PowerPoint - Aula01 Author:

Arquitetura de Computadores Moderna

Eduardo Barrére ([email protected]) DCC/UFJFBaseado no material do prof. Marcelo Lobosco

Page 2: Arquitetura de Computadores Moderna · computadores (hardware e software) com a finalidade de entender/buscar o desempenho. Objetivos do Curso ... Microsoft PowerPoint - Aula01 Author:

Agenda

Visão Geral Objetivos do Curso Ementa Bibliografia Avaliações Datas Importantes Histórico e Evolução Abstrações e Tecnologias Computacionais Linguagem de Máquina

Page 3: Arquitetura de Computadores Moderna · computadores (hardware e software) com a finalidade de entender/buscar o desempenho. Objetivos do Curso ... Microsoft PowerPoint - Aula01 Author:

Visão Geral

Estudo da organização e projeto de computadores (hardware e software) com a finalidade de entender/buscar o desempenho

Page 4: Arquitetura de Computadores Moderna · computadores (hardware e software) com a finalidade de entender/buscar o desempenho. Objetivos do Curso ... Microsoft PowerPoint - Aula01 Author:

Objetivos do Curso

Permitir ao aluno:Avaliar arquiteturas e SOs em busca de obter

desempenho para finalidades específicas.Estudar e “pensar” o hardware como

elemento facilitador/limitador do desempenho da aplicação

Estudar e “pensar” o SO como elemento facilitador/limitador do desempenho da aplicação

Page 5: Arquitetura de Computadores Moderna · computadores (hardware e software) com a finalidade de entender/buscar o desempenho. Objetivos do Curso ... Microsoft PowerPoint - Aula01 Author:

Ementa da parte de HardwareRevisão de: Abstrações e Tecnologias Computacionais; Instruções: a Linguagem de Máquina; Aritmética Computacional; Avaliando e Compreendendo o Desempenho; O Processador: Caminho de Dados e Controle; Pipelining; Hierarquia de Memória Armazenamento, redes e outros periféricos

Page 6: Arquitetura de Computadores Moderna · computadores (hardware e software) com a finalidade de entender/buscar o desempenho. Objetivos do Curso ... Microsoft PowerPoint - Aula01 Author:

Bibliografia Básica

PATERSON, David A. e HENESSY, John L. Organização e Projeto de Computadores: a Interface Hardware/Software. 3ª. Edição. Ed. Campus, 2005.

PATERSON, David A. andHENESSY, John L. Arquitetura de Computadores: Uma Abordagem Quantitativa, Ed. Campus, 2003 (3ª ed.)

Page 7: Arquitetura de Computadores Moderna · computadores (hardware e software) com a finalidade de entender/buscar o desempenho. Objetivos do Curso ... Microsoft PowerPoint - Aula01 Author:

Bibliografia Complementar

TANEMBAUM, Andrew S., Organização estruturada de computadores. 5ª. Edição. LTC, 2008.

Outras bibliografias no plano da disciplina.

Page 8: Arquitetura de Computadores Moderna · computadores (hardware e software) com a finalidade de entender/buscar o desempenho. Objetivos do Curso ... Microsoft PowerPoint - Aula01 Author:

Avaliações da 1a parte

Uma prova, provavelmente no dia 11/abril, valendo 30 pontos

Seminário, provavelmente no dia 15/abril, valendo 20 pontos sobre desempenho de hardware.

Page 9: Arquitetura de Computadores Moderna · computadores (hardware e software) com a finalidade de entender/buscar o desempenho. Objetivos do Curso ... Microsoft PowerPoint - Aula01 Author:

von Neummann

1952: John von Neumann (1903-1957) projeta a máquina IAS

Memória

UC ULAacumulador

E S

Projeto lógico ainda é a base dos computadores digitais

von Neumann

Page 10: Arquitetura de Computadores Moderna · computadores (hardware e software) com a finalidade de entender/buscar o desempenho. Objetivos do Curso ... Microsoft PowerPoint - Aula01 Author:

Transistores

1948: Bell Labs desenvolve o transistor Menor, mais rápido e duradouro que as válvulas

MIT desenvolve TX-0 Primeiro computador transistorizado

PDP-1 (US$120,000) Primeiro video-game

PDP-8 (US$16,000) Único barramento

Page 11: Arquitetura de Computadores Moderna · computadores (hardware e software) com a finalidade de entender/buscar o desempenho. Objetivos do Curso ... Microsoft PowerPoint - Aula01 Author:

Circuitos Integrados

Década de 1960Chip (vários transistores em uma única

pastinha de silício) IBM System/360MultiprogramaçãoEmulação16 MB de memória

Page 12: Arquitetura de Computadores Moderna · computadores (hardware e software) com a finalidade de entender/buscar o desempenho. Objetivos do Curso ... Microsoft PowerPoint - Aula01 Author:

VLSI, ULSI e Computadores Pessoais Década de 1980: Very Large

Scale IntegrationDezenas/centenas de milhares

de transistores em um único chip

Década de 1990: Ultra LargeScale IntegrationMilhões de transistores em um

único chip

Page 13: Arquitetura de Computadores Moderna · computadores (hardware e software) com a finalidade de entender/buscar o desempenho. Objetivos do Curso ... Microsoft PowerPoint - Aula01 Author:

Classes de computadoresDesktop

Uso individual Ênfase em bom desempenho por um baixo custo Acesso via teclado/mouse

Servidor: Múltiplos usuários Projetados para suportar grandes cargas de trabalho

(única aplicação complexa/múltiplas tarefas pequenas) Acesso via rede Abrangem faixa mais ampla em termos de custo e

capacidade

Page 14: Arquitetura de Computadores Moderna · computadores (hardware e software) com a finalidade de entender/buscar o desempenho. Objetivos do Curso ... Microsoft PowerPoint - Aula01 Author:

Classes de computadores

Computadores embarcados/embutidos: Maior classe de computadores Microprocessadores encontrados em micro-ondas,

celular, automóveis, máquinas de lavar, aviões... Projetados para executar aplicações / conjunto de

aplicações relacionadas com um único sistema Necessidades específicas: desempenho mínimo com

limitações rígidas em relação ao custo ou potência Possuem maior tolerância a falhas

Obtida por simplicidade e/ou redundância

Page 15: Arquitetura de Computadores Moderna · computadores (hardware e software) com a finalidade de entender/buscar o desempenho. Objetivos do Curso ... Microsoft PowerPoint - Aula01 Author:

Por Baixo do Seu Programa Aplicações típicas podem consistir de milhares de linhas

de código e se basear em bibliotecas de software que implementam funções complexas

Hardware só pode executar instruções extremamente simples

Camadas de software interpretam instruções de alto nível nas instruções simples que o hardware compreendeOrganizadas de modo hierárquicoMuitos tipos de software de sistema

SO e compilador fundamentais

Page 16: Arquitetura de Computadores Moderna · computadores (hardware e software) com a finalidade de entender/buscar o desempenho. Objetivos do Curso ... Microsoft PowerPoint - Aula01 Author:

Por Baixo do Seu Programa

CompiladoresRealizam outra função fundamental: tradução

de programas escritos em linguagem de alto nível em instruções que o hardware possa executar

Processo complexo devido à sofisticação das linguagens modernas e às instruções simples executadas pelo hardware

Disciplina específica para estudar Compiladores

Page 17: Arquitetura de Computadores Moderna · computadores (hardware e software) com a finalidade de entender/buscar o desempenho. Objetivos do Curso ... Microsoft PowerPoint - Aula01 Author:

Por Baixo do Seu Programa

Page 18: Arquitetura de Computadores Moderna · computadores (hardware e software) com a finalidade de entender/buscar o desempenho. Objetivos do Curso ... Microsoft PowerPoint - Aula01 Author:

Por Baixo do Seu Programa

Linguagens de Alto Nível oferecem vários benefíciosPermitem que o programador pense em uma

linguagem mais natural Uso de palavras em inglês e notação algébrica

Permitem que linguagem seja projetada de acordo com uso pretendido Fortan, Cobol, Lisp...

Maior produtividade do programadorLinguagens independentes do computador onde

serão executadas

Page 19: Arquitetura de Computadores Moderna · computadores (hardware e software) com a finalidade de entender/buscar o desempenho. Objetivos do Curso ... Microsoft PowerPoint - Aula01 Author:

Falácias e Armadilhas

Armadilha: Ignorar o inevitável progresso do hardware ao planejar uma nova máquinaVocê planeja introduzir um computador

revolucionário, 3 vezes mais rápido do que os atuais Prazo para entrar no mercado: 3 anos

Você terá sucesso? Provavelmente não Taxa de crescimento anual de desempenho: 50%

Page 20: Arquitetura de Computadores Moderna · computadores (hardware e software) com a finalidade de entender/buscar o desempenho. Objetivos do Curso ... Microsoft PowerPoint - Aula01 Author:

Falácias e Armadilhas

Máquina com desempenho x hojeEm três anos, 1,53x = 3,4xNova máquina não teria qualquer vantagem de

desempenho

Page 21: Arquitetura de Computadores Moderna · computadores (hardware e software) com a finalidade de entender/buscar o desempenho. Objetivos do Curso ... Microsoft PowerPoint - Aula01 Author:

Falácias e Armadilhas

Page 22: Arquitetura de Computadores Moderna · computadores (hardware e software) com a finalidade de entender/buscar o desempenho. Objetivos do Curso ... Microsoft PowerPoint - Aula01 Author:

Linguagem de Máquina

Instruções: “Palavras” da linguagem de um computador

Conjunto de instruções: vocabulário dos comandos entendidos por uma determinada arquitetura

Veremos conjunto de instruções de um computador real: MIPSLinguagens de computador são muito semelhantesAprendendo uma, fácil entender as outras

Page 23: Arquitetura de Computadores Moderna · computadores (hardware e software) com a finalidade de entender/buscar o desempenho. Objetivos do Curso ... Microsoft PowerPoint - Aula01 Author:

Operações do Hardware do Computador Todo computador precisa ser capaz de

realizar aritmética Todas as instruções aritméticas MIPS

possuem três operandos A ordem do operando é fixa (destino

primeiro) Notação assembly do MIPS para soma

add a, b, c #a = b + c

Page 24: Arquitetura de Computadores Moderna · computadores (hardware e software) com a finalidade de entender/buscar o desempenho. Objetivos do Curso ... Microsoft PowerPoint - Aula01 Author:

Operações do Hardware do Computador Por que não quatro parâmetros? Princípio de projeto 1: a simplicidade

favorece a regularidadeHardware com número variável de operandos

é mais complexo do que hardware para número fixo

Como operar com mais parâmetros?add a, b, cadd a, a, d # a = b + c + d;

Page 25: Arquitetura de Computadores Moderna · computadores (hardware e software) com a finalidade de entender/buscar o desempenho. Objetivos do Curso ... Microsoft PowerPoint - Aula01 Author:

Operações do Hardware do Computador Notação assembly do MIPS para subtração

sub d, a, e # d = a – e Compilando atribuição C complexa no

MIPSf = (g+h)-(i+j);Uso de variável temporária

add t0, g, hadd t1, i, jsub f, t0, t1

Page 26: Arquitetura de Computadores Moderna · computadores (hardware e software) com a finalidade de entender/buscar o desempenho. Objetivos do Curso ... Microsoft PowerPoint - Aula01 Author:

Operandos do Hardware do Computador Ao contrário dos programas nas linguagens de

alto nível, operandos das instruções aritméticas são restritosRegistradoresTamanho do registrador MIPS: 32 bits

Palavra (word) Quantidade limitada

MIPS: 32 registradores

Princípio de projeto 2: menor significa mais rápido

Page 27: Arquitetura de Computadores Moderna · computadores (hardware e software) com a finalidade de entender/buscar o desempenho. Objetivos do Curso ... Microsoft PowerPoint - Aula01 Author:

Operandos do Hardware do Computador Convenção MIPS para representar

registradoresSinal de cifrão($) seguido por dois caracteresVeremos o porque dos nomes ao longo do

cursoPor enquanto:

$s0, $s1, ... para registradores que correspondem às variáveis dos programas

$t0, $t1, ... para registradores temporários

Page 28: Arquitetura de Computadores Moderna · computadores (hardware e software) com a finalidade de entender/buscar o desempenho. Objetivos do Curso ... Microsoft PowerPoint - Aula01 Author:

Operações do Hardware do Computador Tarefa do compilador associar variáveis do

programa aos registradores Considere exemplo anteriorf = (g+h)-(i+j);f, g, h, i e j associados a $s0, $s1, $s2, $s3 e

$s4add $t0, $s1, $s2 # $t0 contém g + hadd $t1, $s3, $s4 # $t1 contém i + jsub $s0, $t0, $t1 # f recebe $t0 - $t1

Page 29: Arquitetura de Computadores Moderna · computadores (hardware e software) com a finalidade de entender/buscar o desempenho. Objetivos do Curso ... Microsoft PowerPoint - Aula01 Author:

Operações do Hardware do Computador E quanto aos programas com muitas variáveis? E estruturas de

dados complexas? Processador só pode conter pequena quantidade de dados nos

registradores Compilador tenta manter variáveis mais utilizadas nos

registradores (acesso mais rápido) Demais dados mantidos em memória (acesso mais lento) Processo chamado de spilling registers

Em MIPS, operações aritméticas só ocorrem com registradores Necessária instruções de transferência de dados entre memória e

registradores

Para acessar palavra na memória, precisamos de localização: endereço

Page 30: Arquitetura de Computadores Moderna · computadores (hardware e software) com a finalidade de entender/buscar o desempenho. Objetivos do Curso ... Microsoft PowerPoint - Aula01 Author:

Operações do Hardware do ComputadorMemória vista como sequência grande e

unidimensional, com endereço atuando como índice para esse arrayEx: Endereço da terceira posição de memória = 2,

conteúdo = 10

Page 31: Arquitetura de Computadores Moderna · computadores (hardware e software) com a finalidade de entender/buscar o desempenho. Objetivos do Curso ... Microsoft PowerPoint - Aula01 Author:

Operações do Hardware do Computador Load: instrução que copia dados da memória para

registrador (lw: load word) Três parâmetros:

Registrador destino: local onde os dados serão copiados Deslocamento (ou offset): distância, a partir do endereço

inicial da memória, onde dado se encontra Registrador base: endereço inicial da memória

Ex: g = h + A[8] g em $s1, h em $s2 e endereço inicial de A em $s3lw $t0, 8($s3) add $s1, $s2, $t0

Page 32: Arquitetura de Computadores Moderna · computadores (hardware e software) com a finalidade de entender/buscar o desempenho. Objetivos do Curso ... Microsoft PowerPoint - Aula01 Author:

Operações do Hardware do Computador No MIPS, uma word tem 32 bits (4 bytes) 1 byte = 8 bits

Endereços reais diferentes dos endereços da figura anteriorEndereço em bytes da 3a. palavra é 8

32 bits de dados

32 bits de dados

32 bits de dados

32 bits de dados048

12

Page 33: Arquitetura de Computadores Moderna · computadores (hardware e software) com a finalidade de entender/buscar o desempenho. Objetivos do Curso ... Microsoft PowerPoint - Aula01 Author:

Operações do Hardware do Computador Words em MIPS precisam começar em

endereços que sejam múltiplos de 4Requisito denominado restrição de alinhamentoDeslocamento apropriado no exemplo anterior

(A[8]): 4 x 8 = 32 Little endian x Big endianEndereço da word definida como o endereço

do byte mais à esquerda (big) ou mais à direita (little)

MIPS: big endian

Page 34: Arquitetura de Computadores Moderna · computadores (hardware e software) com a finalidade de entender/buscar o desempenho. Objetivos do Curso ... Microsoft PowerPoint - Aula01 Author:

Operações do Hardware do Computador Store: copia dados de um registrador para

a memória (sw: store word) Formato semelhante ao load

Registrador a ser armazenado Deslocamento Registrador base

Ex: A[12] = h + A[8] lw $t0, 32 ($s3) # $t0 = Memória [$s3+32] add $t0, $s2, $t0 # $t0 = $t0 + $s2 sw $t0, 48($s3) # Memória [$s3+48] = $t0

Page 35: Arquitetura de Computadores Moderna · computadores (hardware e software) com a finalidade de entender/buscar o desempenho. Objetivos do Curso ... Microsoft PowerPoint - Aula01 Author:

Operações do Hardware do Computador Quantos endereços temos disponíveis no MIPS?230 words com endereços de byte 0, 4, 8, ... 4 GB de memória (230 words x 4 bytes por word)

Usando instruções vistas até aqui, se quiséssemos usar constante em uma operação, necessário armazená-la em memóriaUso de operações com constantes muito comumCusto alto no acesso a memóriaAlternativa: instruções imediatas

Page 36: Arquitetura de Computadores Moderna · computadores (hardware e software) com a finalidade de entender/buscar o desempenho. Objetivos do Curso ... Microsoft PowerPoint - Aula01 Author:

Operações do Hardware do Computador Add imediato (addi): constante no lugar de

um operandoaddi $s3, $s3, 4 # $s3 = $s3 + 4

Princípio de projeto 3: agilize os casos mais comunsOperandos constantes ocorrem com

frequência Mais rápido incluí-las dentro das instruções

aritméticas do que lê-las da memória