Organização e Arquitetura de Computadores

34
1 PUCC Organização e Arquitetura de Computadores

description

Organização e Arquitetura de Computadores. Agenda - Aula 01. Computador Programas Elementos básicos da máquina Máquina multinível Evolução dos computadores. Computador Digital. Máquina capaz de resolver problemas através da execução de instruções que lhe são passadas. - PowerPoint PPT Presentation

Transcript of Organização e Arquitetura de Computadores

Page 1: Organização e Arquitetura        de Computadores

1PUCC

Organização e Arquitetura de Computadores

Page 2: Organização e Arquitetura        de Computadores

2PUCC

Agenda - Aula 01

• Computador

• Programas

• Elementos básicos da máquina

• Máquina multinível

• Evolução dos computadores

Page 3: Organização e Arquitetura        de Computadores

3PUCC

Computador Digital

• Máquina capaz de resolver problemas através da execução de instruções que lhe são passadas.

• Os circuitos eletrônicos do computador executam um conjunto limitado de instruções simples: adição, subtração, deslocamento, OR, AND.

Page 4: Organização e Arquitetura        de Computadores

4PUCC

Computador Digital

Vídeo

MemóriaProgramas

+Dados

E/S

Buffers

TecladoCPU

Execução dasinstruções de um

programa

CPU

Execução dasinstruções de um

programa

Page 5: Organização e Arquitetura        de Computadores

5PUCC

Computador Digital

Vídeo

MemóriaProgramas

+Dados

E/S

Buffers

Reg.

ALU

PCIR

ACAC

MARMAR

MBRMBR

Unid. processamento

Unid. controle

Teclado

Page 6: Organização e Arquitetura        de Computadores

6PUCC

Programa

• Seqüência de instruções que mostra como executar uma determinada tarefa. Pode ser escrita em uma linguagem específica. Por exemplo:

- Some dois números.- Imprima “positivo” se o resultado for > 0.- Imprima “negativo” se o resultado for < 0.

Page 7: Organização e Arquitetura        de Computadores

7PUCC

Programa

Solução

Computador

Programa

Problema

Qual a linguagem que o computador entende?

Page 8: Organização e Arquitetura        de Computadores

8PUCC

Programa

• Cada instrução deve ser executada pela máquina na qual o programa está instalado.

• Apenas algumas linguagens contém instruções que podem ser diretamente executadas.

• Computador executa um conjunto limitado de instruções simples: adição, subtração, deslocamento, OR, AND. Os programas são convertidos nestas instruções antes de serem executados.

Page 9: Organização e Arquitetura        de Computadores

9PUCC

Programa

• Os programas cujas instruções não podem ser diretamente executadas devem ser compilados ou interpretados para a linguagem que permita a execução direta de suas instruções.

Tradução e Execução

Page 10: Organização e Arquitetura        de Computadores

10PUCC

Programa

Faça isto e aquilo

01001110101101

Máquina

linguagem não executávelprograma fonte

linguagem executávelprograma objeto

CompilaçãoExecução

dados entrada saída

Page 11: Organização e Arquitetura        de Computadores

11PUCC

Programa

Faça isto e aquilo

Máquina

Compilação

Interpretação

01001110101101

• O processo de compilação traduz todo o programa fonte para um programa objeto.

• A interpretação traduz comando a comando do programa fonte, que são executados à medida que são traduzidos.

Page 12: Organização e Arquitetura        de Computadores

12PUCC

Programa

01001110101101

Máquina

dados entrada saída

O processo de execução de um programa envolve:

• Executar cada instrução do programa objeto.

• Obter os dados necessários para a computação.

• Produzir as saídas resultantes da computação.

Page 13: Organização e Arquitetura        de Computadores

13PUCC

Elementos Básicos da Máquina

• Memória

• Unidade aritmética e lógica

• Unidade de controle

• Barramento

• Dispositivos de entrada e saída

Page 14: Organização e Arquitetura        de Computadores

14PUCC

Elementos Básicos da Máquina

O sistema no qual o programa será executado deve ser capaz de:

• Armazenar o programa e os dados utilizados na computação.

• Localizar cada instrução e identificar a ação que deve ser realizada.

• Executar a ação, possivelmente obtendo, transformando e armazenando dados.

• Comunicar-se com outros dispositivos (entrada e saída).

Page 15: Organização e Arquitetura        de Computadores

15PUCC

MemóriaAritmética e

Lógica

Dispositivos

ControleCanais de

Comunicação

Elementos Básicos da Máquina

O sistema no qual o programa será executado deve ser capaz de:

• Armazenar o programa e os dados utilizados na computação.

• Localizar cada instrução e identificar a ação que deve ser realizada.

• Executar a ação, possivelmente obtendo, transformando e armazenando dados.

• Comunicar-se com outros dispositivos (entrada e saída).

Page 16: Organização e Arquitetura        de Computadores

16PUCC

Máquina Multinível

Swap (int v[], int k){int temp: temp = v[k]; v[k] = v[k+1]; v[k+1] = temp;}

Linguagem C

swap: muli $2, $5, 4 add $2, $4, $2 lw $15, 0($2) lw $16, 4($2) sw $16, 0($2) sw $15, 4($2) jr $31

Linguagem Assembly

0000000010100001000000000001100000000000100011100001100000100001100011000110001000000000000000001000110011110010000000000000010010101100111100100000000000000000

Código Executável

Page 17: Organização e Arquitetura        de Computadores

17PUCC

Máquina Multinível

• Uma máquina pode ser vista como tendo vários níveis, cada um capaz de executar um conjunto de instruções específicas. Isto é, cada nível possui linguagens apropriadas para descrever as instruções que nele podem ser executadas.

MÁQUINA VIRTUAL

• A maioria dos computadores possui dois ou mais níveis. Descreveremos a organização de uma máquina de seis níveis.

Page 18: Organização e Arquitetura        de Computadores

18PUCC

Máquina Multinível

lógica digital

microprogramação

máquina convencional

sistema operacional

linguagem de montagem

linguagem orientada a problemasNível 5:

Nível 0:

Nível 1:

Nível 2:

Nível 3:

Nível 4:

dispositivos

Executados Diretos pelo Hardware

Interpretação (Microprograma)

Tradução (Compilador)

Tradução (Montador)

Interpretação Parcial (SO)

Page 19: Organização e Arquitetura        de Computadores

19PUCC

Máquina Multinível

lógica digital

microprogramação

máquina convencional

sistema operacional

linguagem de montagem

linguagem orientada a problemas

dispositivos

• Formado pelos transistores individuais

• Tensão, corrente, circuitos, etc.

Page 20: Organização e Arquitetura        de Computadores

20PUCC

Máquina Multinível

lógica digital

microprogramação

máquina convencional

sistema operacional

linguagem de montagem

linguagem orientada a problemas

dispositivos

• Portas lógicas e CI.

• Implementam a manipulação de sinais executando funções lógicas básicas: AND, OR, NOT, deslocamento de bits, etc.

soma

vai um

Page 21: Organização e Arquitetura        de Computadores

21PUCC

Máquina Multinível

lógica digital

microprogramação

máquina convencional

sistema operacional

linguagem de montagem

linguagem orientada a problemas

dispositivos

• Microinstruções constituem de microprogramas que controlam a entrada e saída de sinais para os vários dispositivos e controlam as várias portas lógicas.

• Instruções binárias.

Page 22: Organização e Arquitetura        de Computadores

22PUCC

Máquina Multinível

lógica digital

microprogramação

máquina convencional

sistema operacional

linguagem de montagem

linguagem orientada a problemas

dispositivos

• Comandos para executar funções específicas da máquina: formato de instruções endereçamento, interrupções, dependente da arquitetura utilizada.

MOV 0 ACC;ADD 03FC;

Page 23: Organização e Arquitetura        de Computadores

23PUCC

Máquina Multinível

lógica digital

microprogramação

máquina convencional

sistema operacional

linguagem de montagem

linguagem orientada a problemas

dispositivos

Comandos para executar funções específicas da máquina:• Gerenciamento de tarefas,• Sistema de arquivos,• Memória virtual e paginação.

Page 24: Organização e Arquitetura        de Computadores

24PUCC

Máquina Multinível

lógica digital

microprogramação

máquina convencional

sistema operacional

linguagem de montagem

linguagem orientada a problemas

dispositivos

Assembler

MOV 0 ACC;

MOV 0 R1;

...

GTO A R1

Cada comando corresponde exatamente a uma instrução a ser executada.

Utiliza-se mnemônicos e endereços simbólicos.

Page 25: Organização e Arquitetura        de Computadores

25PUCC

Máquina Multinível

lógica digital

microprogramação

máquina convencional

sistema operacional

linguagem de montagem

linguagem orientada a problemas

dispositivos

C, C++, Pascal, Cobol

Aux:= 0;

do

print(Aux);

Aux:= Aux + 1;

while Aux <= 10;

Page 26: Organização e Arquitetura        de Computadores

26PUCC

Evolução dos Computadores

• GERAÇÃO ZERO - 1836 - Anos 30

– Máquinas mecânicas ou baseadas em relés

• dificuldade de construção

• pouca exatidão

– 1 nível:

• nível de lógica digital

– Exemplos:

• 1936 - Zuze - Z1

– Primeira máquina calculadora a relés

• 1943 - Governo Britânico - Colossus

– Primeiro computador eletromecânico

Page 27: Organização e Arquitetura        de Computadores

27PUCC

Evolução dos Computadores

• PRIMEIRA GERAÇÃO - Anos 40

– Válvulas com processadores

• Caras, lentas, queimavam com facilidade

– ENIAC, UNIVAC

– 2 níveis:

• nível convencional

• nível de lógica digital

– Exemplos:

• 1946 - Eckert/Mauchkley - Eniac 1

– A História do computador moderno começa aqui!

Page 28: Organização e Arquitetura        de Computadores

28PUCC

Evolução dos Computadores

• SEGUNDA GERAÇÃO - Anos 50

– Transistores

• menores, mais baratos, rápidos, duráveis

– 3 níveis:

• nível de montadores (assembly)

• nível de máquina convencional

• nível de lógica digital

– Exemplo:

• 1952 - Von Neumann - IAS

– Modelo da maioria das máquinas atuais.

Page 29: Organização e Arquitetura        de Computadores

29PUCC

Evolução dos Computadores

• TERCEIRA GERAÇÃO - Anos 60– Circuitos Integrados (CI`s)– 4 níveis:

• nível de montadores/compiladores• nível de sistema operacional• nível de máquina convencional• nível de lógica digital

– Exemplos:• 1960 - DEC - PDP 11

– Primeiro minicomputador (50 unidades vendidas)• 1964 - IBM - 360

– Primeira linha de produtos projetada como uma família.

Page 30: Organização e Arquitetura        de Computadores

30PUCC

Evolução dos Computadores

• QUARTA GERAÇÃO - Anos 70– Microprocessadores/ Mem. semicondutora

• VLSI Very Large Scale Integration– 5 níveis:

• nível de montadores/compiladores• nível de sistema operacional• nível de máquina convencional• nível de microprogramação• nível de lógica digital

– Exemplos:• 1974 - Intel - 8080

– Primeira CPU de uso geral em um chip.

Page 31: Organização e Arquitetura        de Computadores

31PUCC

Evolução dos Computadores

• QUINTA GERAÇÃO - Anos 80

– Máquinas RISCs

• Crise do Software

• Linguagem C

– 4 níveis:

• nível de montadores/compiladores

• nível de sistema operacional

• nível de máquina convencional

• nível de lógica digital

– Exemplos: RISC, MIPS, Sparc.

Page 32: Organização e Arquitetura        de Computadores

32PUCC

Evolução dos Computadores

• Crise do Software

– Diminuição do preço de hardware

• Aumento do preço relativo do software

– Dificuldades em achar programadores

• Aumento do preço absoluto do software

– Aumento da complexidade dos sistemas

• Impulsionou linguagens de alto nível

• Gap semântico

• Melhoria da tecnologia dos compiladores

Page 33: Organização e Arquitetura        de Computadores

33PUCC

Evolução dos Computadores

• ... Anos 90

– Arquiteturas Superescalares

– Arquiteturas VLIW ou EPIC (Explicit ParallelInstruction Coding, ex: Merced IA64 da Intel)

– Arquiteturas Superpipeline

– 3 níveis

• nível de sistema operacional

• nível de máquina convencional

• nível de lógica digital

– Exemplos:

• Pentium, Alpha, Power.

Page 34: Organização e Arquitetura        de Computadores

34PUCC