máquina convencional - FTP da PUC

Propaganda
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
CPU
Execução das
instruções de um
programa
Programas
+
Dados
E/S
Buffers
PUCC
Teclado
Vídeo
4
Computador Digital
oUnid. controle
IR
Reg.
PC
MAR
Memória
Programas
+
Dados
MBR
AC
ALU
E/S
oUnid. processamento
Buffers
PUCC
Teclado
Vídeo
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
programa fonte
Faça isto
e aquilo
linguagem executável
programa objeto
0100111
0101101
dados
entrada
saída
Máquina
PUCC
10
Programa
• O processo de
compilação traduz todo
o programa fonte para
um programa objeto.
Compilação
Interpretação
Faça isto
e aquilo
0100111
0101101
• A interpretação traduz
comando a comando do
programa fonte, que são
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
0101101
dados
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
Comunicação
• Executar a ação, possivelmente obtendo,
Dispositivos
transformando e armazenando dados.
• 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)
{int temp:
temp = v[k];
v[k] = v[k+1];
v[k+1] = temp;
}
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
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
sistema operacional
• Formado pelos transistores
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
linguagem de montagem
sistema operacional
máquina convencional
• 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.
microprogramação
soma
lógica digital
dispositivos
PUCC
vai um
20
Máquina Multinível
linguagem orientada a problemas
linguagem de montagem
sistema operacional
máquina convencional
microprogramação
lógica digital
• 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.
dispositivos
PUCC
21
Máquina Multinível
linguagem orientada a problemas
linguagem de montagem
sistema operacional
máquina convencional
microprogramação
• 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;
lógica digital
dispositivos
PUCC
22
Máquina Multinível
linguagem orientada a problemas
linguagem de montagem
sistema operacional
máquina convencional
microprogramação
lógica digital
Comandos para executar
funções específicas da
máquina:
• Gerenciamento de tarefas,
• Sistema de arquivos,
• Memória virtual e paginação.
dispositivos
PUCC
23
Máquina Multinível
linguagem orientada a problemas Assembler
linguagem de montagem
sistema operacional
máquina convencional
microprogramação
Cada comando corresponde
exatamente a uma instrução
a ser executada.
Utiliza-se mnemônicos e
endereços simbólicos.
MOV 0 ACC;
MOV 0 R1;
lógica digital
dispositivos
PUCC
...
GTO A R1
24
Máquina Multinível
linguagem orientada a problemas
C, C++, Pascal, Cobol
linguagem de montagem
sistema operacional
Aux:= 0;
do
máquina convencional
microprogramação
print(Aux);
Aux:= Aux + 1;
while Aux <= 10;
lógica digital
dispositivos
PUCC
25
Evolução dos Computadores
•
PUCC
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
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
PUCC
34
Download