Você está na página 1de 23

1.

INTRODUO

Computador Digital: uma mquina capaz de solucionar


problemas atravs da execuo de instrues que lhe so
fornecidas.

Programa: uma seqncia de instrues que descrevem


como executar uma determinada tarefa.

Instrues de Mquina: Instrues que o computador


capaz de reconhecer e executar, para o qual todos os
programas devem ser convertidos antes que eles possam ser
executados.
Em geral no so muito complicadas.
Exemplos:
Somar dois nmeros
Verificar se um nmero zero
Mover um dado de uma parte da memria para a
outra
Linguagem de Mquina: Linguagem que torna possvel as
pessoas se comunicarem com o computador, composta pelas
instrues primitivas de mquina.
Quanto mais complexa a linguagem, e portanto as
instrues, mais complicados so os circuitos eletrnicos
para implement-las.
Quanto mais simples a linguagem, mais difcil a sua
utilizao.

1
Como tornar a linguagem de mquina (L1) mais simples de
ser utilizada ?
Projetar um novo conjunto de instrues, formando uma
linguagem L2, mais fcil de se programar.
1a Alternativa: Traduo
Mtodo que consiste na substituio de cada
instruo do programa escrito na linguagem L2 por
uma seqncia de instrues equivalente na
linguagem L1.
O computador executa o programa em L1.
2a Alternativa: Interpretao
Mtodo onde um programa escrito na linguagem L1
recebe os programas escritos em L2, e cada
instruo em L2 executada por uma seqncia
equivalente em L1.
O computador executa o programa em L1.
Comparao entre Traduo e Interpretao:
Similares.
Ambas executam seqncias equivalentes em L1 de
cada instruo em L2.
Na traduo, o programa em L2 descartado,
obtendo-se um programa equivalente em L1.
Mquina Virtual: um computador hipottico de
linguagem de mquina de um nvel mais elevado do que a
linguagem inerente do computador.
Pode-se ter tambm mquinas virtuais baseadas em
outras mquinas virtuais.

2
Mquina Multinvel: um computador que possui
mquinas virtuais dispostas em camadas ou nveis, umas
sobre as outras. Cada linguagem utiliza a sua predecessora
como base.
Os programas em Ln ou so interpretados por
um interpretador em execuo em uma
Nvel n Mquina Virtual Mn, linguagem de mquina de nvel inferior, ou
com linguagem de
mquina Ln so traduzidos para a linguagem de mquina
de uma mquina de nvel inferior.
...

Nvel 4 Mquina Virtual M4,


com linguagem de
mquina L4

Os programas em L3 ou so interpretados por


interpretadores em execuo em M2 ou M1,
Nvel 3 Mquina Virtual M3, ou so traduzidos para L2 ou L1.
com linguagem de
mquina L3

Os programas em L2 ou so interpretados por


interpretadores em execuo em M1, ou so
Nvel 2 Mquina Virtual M2, traduzidos para L1.
com linguagem de
mquina L2

Os programas em L1 podem ser executados


Computador Real diretamente pelos circuitos eletrnicos.
Nvel 1
M1, com linguagem
de mquina L1

3
1.1. Consideraes Sobre Mquinas Virtuais

Se uma mquina de linguagem L2 pudesse ser construda a


um custo baixo, a mquina de linguagem L1 no existiria.

As linguagens L1 e L2 no devem ser muito diferentes, para


facilitar a traduo/interpretao.

Cada mquina virtual ou real tem a sua linguagem de


mquina (instrues que a mquina capaz de executar).

Uma mquina real com linguagem de mquina como o C


ou Pascal seria muito complicada para os padres atuais.

O programador de um determinado nvel no precisa


conhecer os nveis inferiores.

O termo Organizao Estrutural de Computadores vem


desta forma de se visualizar o computador, como um
conjunto hierrquico de nveis.

4
1.2. Mquinas Multinvel Contemporneas

Em geral, os computadores modernos so mquinas de seis


nveis:

Nvel de linguagem orientada


Nvel 5 para problemas

Traduo (compilador)

Nvel de linguagem de
Nvel 4 montagem

Traduo (montador)

Nvel 3 Nvel de sistema operacional

Interpretao parcial (sistema


operacional)

Nvel de mquina
Nvel 2
convencional

Interpretao (microprograma)

Nvel 1 Nvel de microprogramao

Os microprogramas so
executados diretamente pelo
hardware

Nvel 0 Nvel de lgica digital

5
Nvel 0 - Nvel de Lgica Digital
Nvel de portas lgicas.
Entrada: 0 ou 1
Sada: funo simples sobre as entradas (AND, etc.).
Nvel 1 - Nvel de Microprogramao
o nvel real de linguagem de mquina.
Cada computador tem seu nvel de microprogramao.
Em geral, o nmero de instrues (micro-instrues) no
ultrapassa 20.
Maior parte: movimentao de dados.
Possui microprogramas executados neste nvel:
Define uma linguagem de nvel 2.
Interpreta as instrues de nvel 2.
Nvel 2 - Nvel de Mquina Convencional
Existe muita semelhana entre os fabricantes neste nvel.
Cada fabricante tem o seu Manual de Referncia de
Linguagem de Mquina.
Nvel 3 - Nvel de Sistema Operacional
um nvel hbrido.
Uma parte das instrues deste nvel idntica as
instrues do nvel 2 que so interpretadas pelos
microprogramas.
Uma outra parte interpretada pelo sistema
operacional.

6
Nvel 4 - Nvel de Linguagem de Montagem
Prov um mtodo para as pessoas escreverem programas
para os nveis 1, 2 e 3 (linguagem simblica).
Os programas escritos em linguagem de montagem so
traduzidos para as linguagens de nvel 1, 2 ou 3 e
interpretados pela mquina virtual ou real.
Quem faz a traduo o programa montador.
Nvel 5 - Nvel de Linguagem de Alto Nvel
Exemplos: Basic, C, Cobol, Fortran, Lisp, Modula 2 e
Pascal.
Compilador: traduz os programas em linguagem de alto
nvel para os nveis 3 ou 4.
Nvel 6 e superiores - ?
Depende da aplicao.
Pode ser criado para atender a necessidades especficas.
Arquitetura de Computadores ou Organizao de
Computadores: o estudo de como projetar as partes de
um computador que so visveis aos programadores.

7
1.3. Evoluo das Mquinas Multinvel

1940s:
2 nveis: lgica digital e mquina convencional.
Difcil de entender e construir.
No confiveis.
1951:
3 nveis: lgica digital, microprogramao e mquina
convencional.
Interpretador embutido e imutvel.
Simplificao do hardware: passa a ter que executar
microprogramas.
Maior confiabilidade (menos vlvulas).
1950s:
Surgimento dos montadores e compiladores.
1960s:
Surgimento do nvel de sistema operacional.
Sistemas batchs (em lote).
Sistemas time-sharing (tempo compartilhado).
1970s:
Generalizao da interpretao e nvel de
microprogramao.

8
1.4. Hardware, Software e Mquinas Multinvel

Hardware do computador: o conjunto de trs


elementos:
Circuitos eletrnicos
Memria
Dispositivos de Entrada e Sada (E/S).
Software: Conjunto de instrues que constituem os
programas, armazenados em algum meio fsico.

Firmware: o software embutido no dispositivo


eletrnico durante a sua fabricao.
Exemplos:
Software imutvel: briquedos, instrumentos, BIOS.
Hardware e Sofware so logicamente equivalentes !
Uma determinada operao pode ser implementada
diretamente por hardware ou simulada por software.
ADD - soma de dois operandos.
MULT - multiplicao de dois elementos.
Atualmente, muitas das operaes antigamente
programadas no nvel de mquina convencional passaram a
ser executadas pelo hardware ou microprogramas.
1. Instrues para multiplicao e diviso de inteiros.
2. Instrues aritmticas de ponto-flutuante.
3. Instrues aritmticas de dupla preciso (aritmtica de
nmeros com duas vezes o nmero de algarismos
significativos).
9
4. Instrues para chamar e retornar de procedimentos.
5. Instrues para acelerar laos (loops).
6. Instrues de contagem (somar 1 a uma varivel).
7. Instrues para manipular cadeias de caracteres.
8. Aspectos de acelerao de computaes envolvendo
matrizes (indexao e endereamento indireto).
9. Caractersticas para permitir que os programas fossem
movidos na memria (facilidades de relocao).
10. Relgios para temporizar programas.
11. Sistemas de interrupo que avisam o computador to
logo uma operao de entrada ou sada esteja
completada.
12. A capacidade de parar um programa e iniciar outro
utilizando poucas instrues (chaveamento entre
processos).
A fronteira entre o hardware e o software varivel.

transparente se uma determinada instruo realmente


executada por hardware ou por software.
A funcionalidade a mesma.
Muda a velocidade.

10
1.5. Evoluo dos Computadores

A Gerao Zero - Computadores Mecnicos (1642-1945)

1642 - Primeiro computador - Blaise Pascal


Computador mecnico com engrenagens e manivelas.
Soma, subtrao.
1672 - Computador mecnico - Leibniz
Equivalente a uma calculadora de bolso: soma,
subtrao, multiplicao e diviso.
1830s - Mquina de diferenas - Charles Babbage
Clculo de tabelas para a navegao naval atravs de
somas e subtraes sucessivas (mtodo das diferenas
finitas).
Perfurava os resultados numa placa de cobre.
1834 - Mquina analtica - Charles Babbage
Foi a primeira tentativa de se construir um computador
digital.
Possuia 4 componentes:
Armazenamento (memria).
Engenho (unidade de clculo).
Seo de entrada (leitora de cartes perfurados).
Seo de sada (sada perfurada e impressa).
Programao: Ada Byron.

11
1936 - Z1 - Zuse
Primeira mquina calculadora a rels a funcionar.
1940 - Calculadora - Stibbitz
Aritmtica binria.
Memria dinmica a capacitores (necessitavam de
refrescamento).
1944 - Mark I - Aiken
72 palavras de 23 dgitos decimais.
Ciclo de instruo de 6 segundos.

A Primeira Gerao - Vlvulas (1945-1955)

1943 - COLOSSUS - Governo Britnico


Primeiro computador eletrnico digital do mundo.
Segredo militar.
1946 - ENIAC I - Eckert/Mauchley
Incio da histria do computador moderno.
Computador e Integrador Numrico Eletrnico.
18.000 vlvulas e 1.500 rels.
30 toneladas e consumo de 140 Kwatts.
20 registradores de 10 dgitos decimais.
Programao: 6.000 chaves e soquetes.
1949 - EDSAC - Wikes
Primeiro computador de programa armazenado.

12
1951 - Whirlwind I - M.I.T.
Primeiro computador de tempo real.
1951 - UNIVAC I - Eckert/Mauchley
Primeiro computador vendido comercialmente.
1952 - IAS - von Neumann
Programao por chaves e cabos era lenta.
O programa era armazenado na forma digital na
memria junto com os dados.
Substituio da representao decimal (10 vlvulas por
dgito) na memria pela representao digital.
Projeto bsico atual: mquina de von Neumann.

Memria

Entrada
Unidade
Unidade Lgica e
de Aritmtica Sada
Controle
Acumulador

13
Memria: 4096 palavras de 40 bits.
Palavra: 40 bits.
2 instrues de 20 bits.
1 no inteiro 39 bits com sinal.
Instruo: 20 bits.
8 bits - tipo de instruo.
12 bits - endereo de 1 palavra na memria.
Instrues tpicas envolvendo o Acumulador (Ac):
Ac Ac + Contedo de uma palavra na memria.
Memria Ac.
1953 - 701 - IBM
2K palavras de 36 bits de ncleo de ferrite.
2 instrues por palavra.
1956 - 704 - IBM
4K palavras de 36 bits.
Hardware de ponto-flutuante.

A Segunda Gerao - Transistores (1955-1965)

1960 - PDP-1 - DEC


Primeiro minicomputador (50 vendidos).
4K palavras de 18 bits.
Ciclo de instruo de 5 seg.
Custava cerca de US$ 120.000.
Display visual (CRT), com 512x512 pontos.
14
1961 - 1401 - IBM
Mquina comercial de pequeno porte muito popular.
1962 - 7094 - IBM
Dominou a computao cientfica no incio dos anos 60.
1963 - B5000 - Burroughs
Primeira mquina projetada para uma linguagem de alto
nvel (Algol 60).
1964 - IBM 360 - IBM
Primeira linha de produtos projetados como uma famlia
(incio).
1964 - 6600 - CDC
Primeira mquina com amplo uso de paralelismo
internamente.

A Terceira Gerao - Circuitos Integrados (1965-1980)

1964... - 360 - IBM


Primeira linha de produtos projetados como uma famlia.
Toda a famlia com a mesma linguagem de montagem.
Multiprogramao: vrios programas simultaneamente
na memria.
Endereamento de 224 (16Mbytes).
Sucessores: 370, 4300, 3080, 3090.
Linha baseadas em circuitos integrados.

15
Linha IBM 360:

Modelo
Propriedade 30 40 50 65
Desempenho Relativo 1 3,5 10 21
Tempo de Ciclo (ns) 1000 625 500 250
Memria Mxima (K) 64 256 256 512
Bytes Buscados por Ciclo 1 2 4 16
No Mximo de Canais de Dados 3 3 4 6

1965 - PDP-8 - DEC


Primeiro minicomputador de venda em massa (50.000
unidades vendidas).
Barramento: conjunto de fios paralelos para conectar
componentes de um computador.
Omnibus:

CPU(*) Memria Terminal E/S de fita Outras


Console de papel E/S

Omnibus
(*) CPU: Unidade Central de Processamento.

1970 - PDP-11 - DEC


Minicomputadores que dominaram os anos 70.
1974 - 8080 - Intel
Primeira CPU de uso geral em uma nica pastilha.
1974 - CRAY-1 - Cray

16
Primeiro supercomputador.
1978 - VAX - DEC
Primeiro supermini de 32 bits.

A Quarta Gerao - Computadores Pessoais e VLSI (1980...)

Com a evoluo da microeletrnica, tornou-se possvel a


construo de circuitos integrados com milhes de
transistores por chip.
Computadores menores, mais rpidos e mais baratos.
Diminui-se as necessidades dos centros de computao
muito sofisticados.
Passou a ser possvel a construo de computadores de uso
pessoal (microcomputadores).
Processadores de textos, planilhas, divertimento, internet.
Diviso atual dos computadores:

Tipo MIPs(*) Mbytes Mquina Exemplo de uso


tpicos tpicos exemplo
(relativo) (relativo)
Computador pessoal 1x 1x IBM PS/2 - PC Processamento de textos, etc.
Minicomputador 2x 4x PDP-11/84 Controle de tempo real.
Supermini 10x 32x SUN-4 Servidor de arquivos (rede).
Mainframe 30x 128x IBM-3090/300 Bancos.
Supercomputador 125x 1024x Cray-2 Previso de tempo.

(*) MIPs: Milhes de Instrues por Segundo.

Fronteira entre estas categorias de computadores


dinmica e muda rapidamente. O mainframe de hoje o
microcomputador de amanh.

17
Supercomputadores: maximizam o nmero de FLOPs
(Operaes em Ponto-Flutuante por segundo).
A Famlia Intel

1971 - 4004
Primeiro microprocessador (CPU em uma nica
pastilha).
O objetivo era servir de base para a construo de
calculadores.
4 bits, 45 instrues, 4Kbytes de endereamento.
1972 - 8008
Processador de 8 bits construdo para controlar terminais.
8 bits, 48 instrues, 16Kbytes de endereamento.
1973 - 8080
Caractersticas: 64Kbytes de endereamento, clock 10
vezes mais rpido que o do 8008, compatvel com a
famlia TTL.
1976 - 8085
Nova verso do 8080, mais rpido.
Incorpora gerador de clock e sinais de controle de sistema
internamente a pastilha.
1978 - 8086
Caractersticas: 16 bits, 1Mbytes de endereamento.
Utilizado para a construo de microcomputadores.
Deu origem a famlia 80x86.

18
1979 - 8088
Verso simplificada do 8086, com via de dados de 8 bits.
Permitiu a construo de microcomputadores mais
baratos
Escolhido pela IBM como o microprocessador do
IBM PC original.
1982 - 80186
Verso do 8086 que incorpora o gerador de clock,
controlador de interrupo, temporizador e unidade de
acesso direto a memria. Foi pouco usado.
1982 - 80188
Verso simplificada do 80186, com via de dados de 8 bits.
1983 - 80286
Verso do 8086 com 16Mbytes de endereamento.
1Gbytes de espao de endereamento de memria virtual.
Unidade de gerenciamento de memria.
CPU do microcomputador PC-AT e de algumas verses
do PS/2.
1985 - 80386
Verso do 8086 de 32 bits.
Suporte a multi-tarefa.
4Gbytes de endereamento.
64Tbytes de espao de endereamento de memria virtual.
80386DX: via de dados externa de 32 bits.

19
80386SX: via de dados externa de 16 bits. Permitiu a
migrao do hardware do 80286 de forma mais direta.
1989 - 80486
Verso melhorada do 80386.
8Kbytes de memria cache interna.
Caractersticas de mquinas RISC.
80486DX: verso com o co-processador numrico 80387.
80486SX: verso sem o co-processador numrico.
1992 - Pentium
Verso melhorada do 80486, com via de dados externa de
64 bits, trabalhando internamente com 2 processadores.
Cache interno de 16Kbytes (8 para dados e 8 para
instrues).
1995 - Pentium Pro
Verso do Pentium com cache de nvel 2 embutido na
pastilha do microprocessador.

20
A Famlia Motorola

1974 - 6800
Primeiro microprocessador da Motorola de 8 bits.
1978 - 6809
Evoluo do 6800 com registradores adicionais, novas
instrues de manipulao de dados de 16 bits e mais
modos de endereamento.
1975 - 6502
Microprocessador popular da Motorola, utilizado nas
mquinas Apple, compatvel com o 6800.
1979 - 68000
Microprocessador de 16/32 bits possuindo vias de dados
internas de 32 bits e externas de 16 bits, registradores de
32 bits. Nem todas as instrues trabalham com 32 bits.
No compatvel com os anteriores (projeto novo).
Utilizado no microcomputadores Macintosh.
Deu origem a famlia 680x0.
1980 - 68008
Verso do 68000 com via de dados externa de 8 bits e vias
de endereos de 20 bits (1Mbytes de endereamento), que
no foi muito utilizado.
1983 - 60010
Evoluo do 68000 com controle de memria virtual.
16Mbytes de endereamento.

21
1983 - 60012
Verso do 60010 com 2 Gbytes de endereamento.
1984 - 68020
Microprocessador de 32 bits, com memria cache interna
de 256 bytes. Todas as instrues trabalham com 32 bits.
Utilizado pelas estaes de trabalho Sun, Apollo e HP.
1987 - 68030
Verso melhorada do 68020 e com uma unidade de
gerenciamento de memria dentro da pastilha.
Equivalente ao 80386.
1990 - 68040
Verso com co-processador numrico 68881.
Memria cache interna de 4Kbytes para dados e
instrues independentes.
Equivalente ao 80486.
1994 - 68060
Apresenta um projeto super-escalar, com mltiplas
unidades de execuo.

22
A Famlia Zilog

A Zilog foi fundada em 1974, como uma dissidncia da


Intel, e projetou o famoso microprocessador Z80.

1974 - Z80
Processador de 40 pinos, sendo uma verso melhorada do
8080, de 8 bits.
1979 - Z8000
Microprocessador de 16 bits capaz de enderear at
8Mbytes de memria.
Possui memria cache para dados e instrues de 256
bytes e unidade de gerenciamento de memria.

23