Você está na página 1de 33

Organização e Arquitetura

de Computadores

PUCC 1
Agenda - Aula 01

• Computador
• Programas
• Elementos básicos da máquina
• Máquina multinível
• Evolução dos computadores

PUCC 2
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.

PUCC 3
Computador Digital

Memória
Programas
CPU
CPU +
Teclado
Dados

Execução
Execuçãodas
das
instruções
instruçõesde
deum
um
programa
programa E/S

Vídeo
Buffers

PUCC 4
Computador Digital

oUnid. controle
Memória
Programas
IR +
Reg. PC MAR
MAR Teclado
Dados
AC
AC MBR
MBR

ALU
E/S
oUnid. processamento
Vídeo
Buffers

PUCC 5
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.

PUCC 6
Programa

Problema

Programa

Computador

Solução

Qual a linguagem que o computador entende?


PUCC 7
Programa

• 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.
• 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.
PUCC 8
Programa

Tradução e Execução

• 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.

PUCC 9
Programa
Compilação
Execução
linguagem não executável linguagem executável
programa fonte programa objeto

Faça isto 0100111 dados


e aquilo 0101101 entrada saída

Máquina
PUCC 10
Programa
Compilação • O processo de
compilação traduz todo
Interpretação o programa fonte para
um programa objeto.
• A interpretação traduz
comando a comando do
Faça isto 0100111
programa fonte, que são
e aquilo 0101101 executados à medida
que são traduzidos.

Máquina
PUCC 11
Programa
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.
0100111 dados
0101101 entrada saída

Máquina
PUCC 12
Elementos Básicos da Máquina

• Memória
• Unidade aritmética e lógica
• Unidade de controle
• Barramento
• Dispositivos de entrada e saída

PUCC 13
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).
PUCC 14
Elementos Básicos da Máquina
O sistema no qual o programa será executado
deve ser capaz de:
Memória
• Armazenar o programa e os dados utilizados
Aritmética e
na computação.
Lógica
• Localizar cada instrução e identificar a ação Controle
que deve ser realizada. Canais de
• Executar a ação, possivelmente obtendo, Comunicação
transformando e armazenando dados. Dispositivos
• Comunicar- se com outros dispositivos
(entrada e saída).
PUCC 15
Máquina Multinível
Linguagem Assembly Linguagem C

swap: Swap (int v[], int k)


muli $2, $5, 4 {int temp:
add $2, $4, $2 temp = v[k];
lw $15, 0($2) v[k] = v[k+1];
lw $16, 4($2) v[k+1] = temp;
sw $16, 0($2) }
sw $15, 4($2)
jr $31 Código Executável

00000000101000010000000000011000
00000000100011100001100000100001
10001100011000100000000000000000
10001100111100100000000000000100
10101100111100100000000000000000

PUCC 16
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.
PUCC 17
Máquina Multinível
Nível 5: linguagem orientada a problemas
Tradução (Compilador)
Nível 4: linguagem de montagem
Tradução (Montador)
Nível 3: sistema operacional
Interpretação Parcial (SO)
Nível 2: máquina convencional
Interpretação (Microprograma)
Nível 1: microprogramação
Executados Diretos pelo Hardware
Nível 0: lógica digital

dispositivos
PUCC 18
Máquina Multinível
linguagem orientada a problemas

linguagem de montagem
• Formado pelos transistores
sistema operacional individuais
máquina convencional • Tensão, corrente, circuitos,
etc.
microprogramação

lógica digital

dispositivos
PUCC 19
Máquina Multinível
linguagem orientada a problemas
• Portas lógicas e CI.
linguagem de montagem • Implementam a
sistema operacional manipulação de sinais
executando funções lógicas
máquina convencional básicas: AND, OR, NOT,
deslocamento de bits, etc.
microprogramação
soma

lógica digital

dispositivos vai um

PUCC 20
Máquina Multinível
linguagem orientada a problemas

linguagem de montagem
• Microinstruções constituem
sistema operacional de microprogramas que
controlam a entrada e saída de
máquina convencional sinais para os vários
dispositivos e controlam as
microprogramação várias portas lógicas.
• Instruções binárias.
lógica digital

dispositivos
PUCC 21
Máquina Multinível
linguagem orientada a problemas

linguagem de montagem • Comandos para executar


funções específicas da
sistema operacional
máquina: formato de
instruções endereçamento,
máquina convencional
interrupções, dependente da
microprogramação arquitetura utilizada.
MOV 0 ACC;
ADD 03FC;
lógica digital

dispositivos
PUCC 22
Máquina Multinível
linguagem orientada a problemas

linguagem de montagem

sistema operacional Comandos para executar


funções específicas da
máquina convencional máquina:
• Gerenciamento de tarefas,
microprogramação • Sistema de arquivos,
• Memória virtual e paginação.
lógica digital

dispositivos
PUCC 23
Máquina Multinível
linguagem orientada a problemas Assembler

linguagem de montagem Cada comando corresponde


exatamente a uma instrução
sistema operacional a ser executada.

máquina convencional Utiliza-se mnemônicos e


endereços simbólicos.
microprogramação MOV 0 ACC;
MOV 0 R1;
lógica digital ...
GTO A R1
dispositivos
PUCC 24
Máquina Multinível
linguagem orientada a problemas C, C++, Pascal, Cobol

linguagem de montagem

sistema operacional Aux:= 0;


do
máquina convencional print(Aux);
Aux:= Aux + 1;
microprogramação
while Aux <= 10;

lógica digital

dispositivos
PUCC 25
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
PUCC 26
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!

PUCC 27
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.

PUCC 28
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.

PUCC 29
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.

PUCC 30
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.

PUCC 31
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

PUCC 32
Evolução dos Computadores
• ... Anos 90
– Arquiteturas Superescalares
– Arquiteturas VLIW ou EPIC (Explicit Parallel
Instruction 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.

PUCC 33