Vous êtes sur la page 1sur 67

ORGANIZAO ESTRUTURADA DE

COMPUTADORES
CEFETES - UnED Serra

ARQUITETURA & ORGANIZAO 1

Arquitetura : Atributos de um computador visiveis


para o programador
Conjunto de instrues, numero de bits utilzado para a
representao de dados , Mecanismos de E/S, Tecnicas
de endereamento.
Por exempl:. Existe uma instruo de multiplicao?

Organizao : Como os atributos de um


computador so implementados
Sinais de controle, interfaces, Tecnologia da memria
Por exemplo: Existe uma unidade capaz de realizar
diretamente uma instruo de multiplicao ou ela
realizada por meio de adies?

ARQUITETURA & ORGANIZAO 2

Todos os processadores Intel da familia x86


compartilham uma mesma arquitetura bsica

Os computadores IBM da familia System/370


compartilham uma mesma arquitetura.

Possibilitando compatibilidade

Organizao diferente entre os modelos

INTRODUO

Componentes de um Computador

Memria
Controle
Vias de dados
Entrada
Sada

STRUCTURE - TOP LEVEL

Peripherals

Computer
Central
Processing
Unit

Computer

Systems
Interconnection

Input
Output
Communication
lines

Main
Memory

STRUCTURE - THE CPU

CPU
Computer
I/O
System
Bus
Memory

Registers

Arithmetic
and
Login Unit

CPU

Internal CPU
Interconnection

Control
Unit

STRUCTURE - THE CONTROL UNIT

Control Unit
CPU
ALU
Control
Internal
Unit
Bus
Registers

Sequencing
Login
Control Unit
Registers and
Decoders
Control
Memory

INTRODUO

Complexidade requer abstraes

Abstrao do Hardware

Sistema
Mdulo
Porta
Circuito
Dispositivo
G
S
n+

D
n+

INTRODUO

Abstrao do Software (relativa ao Hardware)

Aplicaes
Sistema
Operacional

Hardware

INTRODUO

Informao mnima no hardware


Bit (0 ou 1)
Conjunto de 8 bits: byte
Conjunto de 32 bits: palavra (neste contexto)

Programa

Combinao de bits com significado para mquina

00100010001100111111111111111111
00100010010101000000000000000100
01110010001100010000000000000010

INTRODUO

Cdigo de difcil inteligibilidade


00100010001100111111111111111111
00100010010101000000000000000100
01110010001100010000000000000010

Soluo: criar smbolos que representem o cdigo

Mnemnicos

addi A, B, -1
addi C, D, 4
mul E, B, B

INTRODUO

Tradutor automtico

addi A, B, -1
addi C, D, 4
mul E, B, B

Montador

00100010001100111111111111111
001000100101010000000000000
0111001000110001000000000011

INTRODUO

Tradutor automtico

Linguagem
de Mquina

Linguagem
Assembly

addi A, B, -1
addi C, D, 4
mul E, B, B

Montador

001000100011001111111111111111
0010001001010100000000000000
0111001000110001000000000000
Instrues

INTRODUO

Linguagens de Alto Nvel

Linguagem
Assembly

Linguagem
C/Java
A= B 1
C= D + 4
E=B*B

Compilador

addi A, B, -1
addi C, D, 4
mul E, B, B
Instrues

for (i=0; i<10; i++){


m=m+j+c;
j=j-i;
}

INTRODUO
Compilador
C
MIPS
Assembly
MIPS

...
add $17, $18, $19
add $16, $16, $17
sub $20, $20, $21
....

Montador
MIPS

Linguagem
de Mquina
MIPS

Compilador
C
SPARC
Assembly
SPARC

...
add %g4, %g1, %g2
add %g3, %g3, %g4
sub %g5, %g5, %g7
....

Montador
SPARC

Linguagem
de Mquina
SPARC

HLL

Compilador
C
IA32
Assembly
IA32

...
add eax, ebx, ecx
sub ax, bx, cx
....

Montador
IA32

Linguagem
de Mquina
IA32

...
00000010010100111000100000100000
00000010000100011000000000100000
00000010100101011010000000100010
....

...
10000100000000010000000000000001
10001000000000001100000000000011
10001110001000010100000000000101
....

...
10000100000000010000000000000001
10001000000000001100000000000011
....

Processador
MIPS R3000

Processador
SPARC v8

Processador
Pentium

INTRODUO
for (i=0; i<10; i++){
m=m+j+c;
j=j-i;
}

Processador
MIPS R3000
HLL

Memria
Compilador
C
MIPS
Assembly
MIPS

...
add $17, $18, $19
add $16, $16, $17
sub $20, $20, $21
....

Montador
MIPS

...
00000010010100111000100000100000
00000010000100011000000000100000
00000010100101011010000000100010
....

Linguagem
de Mquina
MIPS

Carregador
(SO)

Cdigo
Executvel
Ligador
MIPS

...
00000010010100111000100000100000
00000010000100011000000000100000
00000010100101011010000000100010
....

biblioteca

...
00000010010100111000100000100000
00000010000100011000000000100000
00000010100101011010000000100010
....

INTRODUO
Bibliotecas
Java

Programa
em Java
Compilador
Java

ByteCodes
Java
(.class)

Mquina
Virtual
Java
JIT

Mtodos
Java
Executveis

Hardware e Software so equivalentes

LINGUAGENS, NVEIS E
MQUINAS VIRTUAIS

Linguagem: conjunto de instrues utilizadas para


se construir programas
Linguagem de Mquina: linguagem (L0) do
computador real
Linguagem Abstrata: linguagem (L1) mais adequada
para pessoas

LINGUAGENS, NVEIS E
MQUINAS VIRTUAIS
Traduo:

substituio de cada instruo


de um programa em L1 por uma seqncia
equivalente de instrues em L0, obtendo
um novo programa em L0 que pode ser
executado no computador real
Interpretao: execuo de um programa
em L1 por outro programa (interpretador)
em L0; o programa em L1 input para o
interpretador, que examina cada instruo
em L1 e executa uma seqncia
equivalente de instrues em L0

MQUINA MULTINVEL (MULTICAMADA)


Mquina virtual Mn, com linguagem de mquina Ln

Programa em Ln pode ser


interpretado por um interpretador
executando em uma mquina
mais abaixo, ou traduzido para a
linguagem de mquina de uma
mquina mais abaixo

Mquina virtual M2, com linguagem de mquina L2

Programa em L2 pode ser


interpretado por interpretadores
executando em M1 ou em M0,
ou traduzido para L1 ou L0

Mquina virtual M1, com linguagem de mquina L1

Programa em L1 pode ser


interpretado por um interpretador
executando em M0,
ou traduzido para L0

Computador real M0, com linguagem de mquina L0

Programa em L0 diretamente
executado por circuitos eletrnicos

LINGUAGENS, NVEIS E
MQUINAS VIRTUAIS
Mquina Virtual: mquina (M1) hipottica, cuja
linguagem de mquina a linguagem L1
Nvel ou Camada: uma mquina (computador real
ou virtual) e a correspondente linguagem, sobre a
qual uma nova camada pode ser acrescentada

MQUINA MULTINVEL CONTEMPORNEA


Nvel 5

(BASIC, C, C++, Java,


LISP, Prolog, ...)

Nvel de Linguagem Orientada a Problemas


Traduo (compilador)

Nvel 4

Nvel de Linguagem de Montagem (Assembly)


Traduo (montador ou assembler)

Nvel 3

Nvel de Mquina de Sistema Operacional


Interpretao parcial (sistema operacional)

Nvel 2

(mnemnicos para as
Instrues de mquina)

(instrues para permitir


concorrncia e uma organizao
diferente da memria)

Nvel de Arquitetura de Conjunto de Instrues

(instrues de mquina)

Interpretao (microprograma) ou execuo direta


Nvel 1

Nvel de Microarquitetura

(registradores e o circuito ALU


Arithmetic Logic Unit)

Hardware
Nvel 0

Nvel de Lgica Digital

(gates constitudos de transistores


e registradores que compem a memria)

REFERNCIA BIBLIOGRFICA

Organizao Estruturada de Computadores. 4


Edico, Andrew S. Tanenbaum.

Arquitetura e organizao de computadores. 5


Edio, William Stallings

Introduo Organizao de Computadores. 4


Edio, Mrio Monteiro.

HISTRICO E EVOLUO
DOS COMPUTADORES

EVOLUO DOS COMPUTADORES


Gerao Pioneira
Computadores Mecnicos (1642-1945)

1 Gerao
Computadores com Tubos a Vcuo ou Vlvulas
Eletrnicas (1945-1955)

2 Gerao
Computadores com Transistores (1955-1965)

3 Gerao
Computadores com Circuitos Integrados (19651980)

4 Gerao
Computadores com Integrao em Escala Muito
Grande - VLSI (1980-?) e Computadores
pessoais

GERAO PIONEIRA (1642-1945):


COMPUTADORES MECNICOS
Blaise

Pascal (1623-1662, Frana)


construiu em 1642 a primeira mquina de
calcular, baseada em engrenagens e
alavancas, e que permitia fazer adies e
subtraes.
Baron Gottfried Wilhelm von Leibniz (16461716, Alemanha) construiu outra mquina
no mesmo estilo, e que permitia tambm
fazer multiplicaes e divises.

GERAO PIONEIRA (1642-1945):


COMPUTADORES MECNICOS

Charles Babbage (1792-1871, Inglaterra) construiu na


Universidade de Cambridge duas mquinas:
Difference Engine: executava sempre o mesmo algoritmo
(tratava tabelas de nmeros para fins de navegao naval,
aplicando o mtodo de diferenas finitas usando polinmios); a
sada era gravada em pratos de cobre e ao.
Analytical Engine:

Quatro componentes: store (memria), mill (unidade de computao),


input section (leitora de cartes perfurados) e output section (sada
impressa e com perfurao);
A unidade de computao lia nmeros da memria, fazia clculos
(adio, subtrao, multiplicao e diviso) e podia retornar o
resultado para a memria.
Mquina de propsito geral: lia instrues (de tratamento aritmtico e
de desvio condicional) atravs de cartes perfurados e as executava.
Primeira pessoa a escrever programas: Ada Augusta Lovelace

GERAO PIONEIRA (1642-1945):


COMPUTADORES MECNICOS

Konrad Zuse (Alemanha) construiu durante a dcada de 1930


uma srie de mquinas de calcular baseadas em relays
eletromagnticos, mas a Segunda Guerra Mundial impediu o
seu avano e ainda causou a sua destruio.
John Atanasoff (Estados Unidos da Amrica, Iowa State
University) e George Stibbitz (Estados Unidos da Amrica,
Bell Labs) construram no final da dcada de 1930
calculadoras que j usavam aritmtica binria e possuam
memria baseada em capacitores.
Howard Aiken (Estados Unidos da Amrica, Harvard
University) construiu em 1944 uma mquina de propsito
geral chamada Mark I, baseada no trabalho de Babbage, mas
que usava relays eletromagnticos no lugar de engrenagens.

PRIMEIRA GERAO (1945-1955):


VLVULAS

Governo Britnico construiu em 1943 o primeiro computador


digital eletrnico, o COLOSSUS, para fins de decodificar as
mensagens trocadas pelos alemes durante a Segunda
Guerra Mundial, que eram criptografadas por uma mquina
chamada ENIGMA.
O projeto foi mantido em segredo por 30 anos, por isso, no
houve evoluo.
Alan Turing participou do projeto.

PRIMEIRA GERAO (1945-1955):


VLVULAS

John Mauchley e J. Presper Eckert (EUA)


construram em 1946 para fins militares um
computador eletrnico chamado ENIAC
(Electronic Numerical Integrator and Computer):
18.000 tubos a vcuo
1.500 relays
30 toneladas
140 kilowats
20 registradores de nmeros decimais de 10
dgitos
Programao feita atravs de 6.000 switches e de
milhares de jumpers (cabos de conexo)
John von Neumann participou do projeto.

INVENO DA MICROPROGRAMAO
Os primeiros computadores (anos 40) possuam
somente dois nveis: Nvel de Arquitetura de
Conjunto de Instrues e o Nvel de Lgica Digital,
que era complicado, difcil de entender e construir,
e de baixa confiabilidade.
Em 1951, Maurice Wilkes (University of Cambridge)
sugeriu a introduo de um nvel intermedirio para
simplificar o hardware: um interpretador
(microprograma) imutvel para executar as
instrues especificadas no nvel acima.

PRIMEIRA GERAO (1945-1955):


VLVULAS

PRIMEIRA GERAO (1945-1955):


VLVULAS

Vrios computadores surgiram na seqncia:

JOHNIAC: Rand Corporation


ILLIAC: Universidade de Illinois
MANIAC: Laboratrio de Los Alamos
WEIZAC: Instituto Weizmann, Israel
EDSAC (1949): Universidade de Cambridge; foi o
primeiro a armazenar programas em memria.

PRIMEIRA GERAO (1945-1955):


VLVULAS

John von Neumann (Estados Unidos da Amrica,


Instituto de Estudos Avanados de Princeton)
construiu em 1952 o computador IAS:
Programas e dados representados de forma digital em
memria
Processamento baseado em aritmtica binria, ao invs
de decimal

MQUINA DE VON NEUMANN


Memria

Unidade de
Controle

Unidade Aritmtica Lgica


Input
Acumulador
Output

Memria: 4096 palavras de 40 bits (2 instrues de 20 bits ou um inteiro)


Instruo: 8 bits para indicar o tipo, 12 tipos para enderear a memria
Acumulador: registrador especial de 40 bits

PRIMEIRA GERAO (1945-1955):


VLVULAS

IBM comeou a construir computadores:

1953: IBM 701


2048 palavras de 36 bits
Duas instrues por palavra
Mquina para aplicaes cientficas (numricas)

1956: IBM 704


4K de memria
Instrues de 36 bits
Hardware para floating-point (nmeros reais)

1958: IBM 709

INVENO DO SISTEMA OPERACIONAL

Por volta de 1960, foi criado um programa sistema


operacional que ficaria constantemente em execuo no
computador com a funo de automatizar o trabalho do
operador do computador: iniciar um novo job, carregar o
compilador de FORTRAN, carregar o programa a ser
compilado, executar o programa resultante da compilao,
entrar os dados para o programa, imprimir os resultados do
programa, ...

Batch system: execuo seqencial de jobs (um nico


usurio por vez no computador)

Timesharing system: terminais remotos conectados ao


computador central atravs de linhas de telefone (CPU
compartilhada entre muitos usurios)

SEGUNDA GERAO (1955-1965):


COMPUTADORES COM TRANSISTORES

Inveno do transistor
1948, Bell Labs, EUA
John Bardeen, Walter Brattain e William Shockley

TX-0 (Transistorized eXperimental computer 0)

M.I.T., Lincoln Laboratory


Primeiro computador com transistor

SEGUNDA GERAO (1955-1965):


COMPUTADORES COM TRANSISTORES

PDP-1

1961, DEC (Digital Equipment Corporation)


Primeiro computador comercializado
Kenneth Olsen (participante do projeto do TX-2) fundou a
DEC em 1957.
Memria: 4K palavras de 18 bits
Ciclo: 5 microsegundos
Primeiro computador com display visual: tela de 512x512
pontos
Preo: US$120,000
Unidades vendidas: algumas dezenas
Nascimento da indstria de minicomputadores

SEGUNDA GERAO (1955-1965):


COMPUTADORES COM TRANSISTORES

SEGUNDA GERAO (1955-1965):


COMPUTADORES COM TRANSISTORES
PDP-8

DEC, 1965
Preo: US$16,000
Unidades vendidas: 50.000
Mquina de 12 bits
Barramento nico: omnibus (FIGURA)

BARRAMENTO NICO DO PDP-8


- OMNIBUS -

CPU

memory

console
terminal

paper
tape I/O

other I/O

Omnibus

SEGUNDA GERAO (1955-1965):


COMPUTADORES COM TRANSISTORES

SEGUNDA GERAO (1955-1965):


COMPUTADORES COM TRANSISTORES
7090

IBM ( International Business Machine)


Verso transistorizada do IBM 709

SEGUNDA GERAO (1955-1965):


COMPUTADORES COM TRANSISTORES
7094

1962, IBM
Memria: 32K palavras de 36 bits
Ciclo: 2 microsegundos

1401

1961, IBM
Memria: 4K bytes
Mquina orientada a negcios:
Fitas magnticas (leitura e escrita)
Cartes (leitura e perfurao)
Impresso relativamente rpida e barata

SEGUNDA GERAO (1955-1965):


COMPUTADORES COM TRANSISTORES

SEGUNDA GERAO (1955-1965):


COMPUTADORES COM TRANSISTORES
6600

1964, CDC (Control Data Corporation)


Projetista: Seymour Cray
Alto grau de paralelismo dentro da CPU:
Vrias unidades para adio, multiplicao e diviso
trabalhando simultaneamente.
At 10 instrues executadas simultneamente
Muito mais rpido que o 7094 !

Pequenos computadores auxiliares para


tratamento de entrada e sada
Sucessores: 7600, Cray-1

SEGUNDA GERAO (1955-1965):


COMPUTADORES COM TRANSISTORES

SEGUNDA GERAO (1955-1965):


COMPUTADORES COM TRANSISTORES

B5000
Burroughs
Projeto orientado para a execuo de programas em
Algol-60, linguagem precursora do Pascal
Maior prioridade para o software
Menor prioridade para velocidade de processamento e
preo

SEGUNDA GERAO (1955-1965):


COMPUTADORES COM TRANSISTORES

TERCEIRA GERAO (1965-1980):


COMPUTADORES COM CIRCUITOS INTEGRADOS

Inveno do circuito integrado de silcio


1958, Robert Noyce
Dezenas de transistores em um nico chip
Possibilitou construir computadores menores, mais
rpidos e mais baratos

TERCEIRA GERAO (1965-1980):


COMPUTADORES COM CIRCUITOS INTEGRADOS

System/360 (IBM, 1965)

Famlia de computadores, com diferentes capacidades de


processamento e armazenamento: modelos 30, 40, 50 e
65 (tabela)
Visava substituir o 1401 (comercial) e o 7094 (cientfico)
ao mesmo tempo
Permitia multiprogramao: vrios programas em memria
em execuo simultnea (quando um aguardava uma
operao de entrada ou sada se completar, outro podia
executar)
Emulava outros computadores (1401, 7094), devido sua
capacidade de microprogramao
Endereamento mximo: 16 megabytes (24 bits)

TERCEIRA GERAO (1965-1980):


COMPUTADORES COM CIRCUITOS INTEGRADOS

FAMLIA IBM SYSTEM/360


Propriedade
Desempenho
relativo

Modelo 30

Modelo 40

Modelo 50

Modelo 65

3,5

10

21

1000

625

500

250

64

256

256

512

Bytes lidos por


ciclo

16

Canais para
dados

Ciclo (nsec)

Memria (KB)

TERCEIRA GERAO (1965-1980):


COMPUTADORES COM CIRCUITOS INTEGRADOS

PDP-11
DEC, 1970
Sucessor de 16 bits do PDP-8
Grande sucesso, especialmente nas universidades

QUARTA GERAO (1980-?):


COMPUTADORES COM INTEGRAO
SCALE INTEGRATION (VLSI)

EM

ESCALA MUITO GRANDE VERY LARGE

Dcada de 80: grande compactao dos circuitos


integrados

Dezenas de milhares, depois centenas de milhares e


finalmente milhes de transistores em um chip
Desempenho aumentou muito
Preos caram muito
Computadores deixaram de ser privilgio de grandes
corporaes
Incio da era do computador pessoal

PRIMEIROS COMPUTADORES PESSOAIS


Vendidos

em kits para o prprio consumidor

montar

Placa de circuito impresso


Conjunto de chips (tipicamente Intel 8080)
Alguns cabos
Fonte de alimentao
Floppy disk de 8 polegadas

Software

no era fornecido:

o consumidor tinha que escrever seu prprio


software

PRIMEIROS COMPUTADORES PESSOAIS


Sistema

Gary Kildall
Processadores Intel 8080
Floppy disk operating system
Sistema de arquivos
Comandos por teclado

Apple,

operacional CP/M

Apple II

Steve Jobs e Steve Wozniak


Muito popular para uso domstico e em escolas

PRIMEIROS COMPUTADORES PESSOAIS


IBM

Personal Computer

IBM, 1981
Intel 8088
Projeto de circuitos pblico:
Objetivo: permitir que outros fabricassem
componentes facilmente acoplveis ao PC (plug-in
boards)
Conseqncia: indstria de clones

Sistema operacional:
Inicialmente, MS-DOS (criao da Microsoft)
Mais tarde, com CPUs mais poderosas, OS/2, que
possui interface grfica semelhante ao Apple
Macintosh
Mais tarde ainda, MS-Windows

LEI DE MOORE
Gordon Moore, 1965, Intel
Nmero de transistores em um chip dobra a cada
18 meses.
Crculo Virtuoso:

Avano tecnolgico propicia melhores produtos a preos


mais baixos.
Preos mais baixos induz ao surgimento de novas
aplicaes (exemplo, video games)
Novas aplicaes aumentam as possibilidades de
mercado e fazem surgir novas empresas.
Novas empresas leva a competio, criando demanda
econmica para o avano tecnolgico.

TEMPO X NUMERO DE TRANSISTORES

LEI DE NATHAN
Nathan Myhrvold, Microsoft
Software como gs: expande at preencher todo
o container.
Exemplo: editores de texto

Troff (dcada de 80) ocupava alguns milhares de


kilobytes de memria
Editores atuais ocupam dezenas de megabytes

CATEGORIAS DE COMPUTADORES
Tipo
Descartvel
Embutido

Game
Computadores
pessoais
Servidores
Coleo de
workstations
Mainframe
Supercomputador

Preo ($) Exemplos de aplicao


1 Cartes de mensagens
10 Relgios, carros, equipamentos

100 Vdeo games


1K Desktops e portteis
10K Servidores de rede
100K Minisupercomputador
departamental
1M Processamento batch em
bancos
10M Previso de tempo, prospeco
de petrleo

INTEL

1968: Fundao
Robert Noyce ( inventor do circuito integrado de silcio )
Gordon Moore ( Moores law )
Arthur Rock ( investidor )

Tabela de processadores (prximo slide)

INTEL
Chip

Data

MHz

Transistores

Memria

Nota

4004

4/1971

0,108

2.300

640

Primeiro microprocessador em um nico


chip

8008

4/1972

0,108

3.500

16 KB

Primeiro microprocessador de 8 bits

8080

4/1974

6.000

64 KB

Primeira CPU de propsito geral em um


chip

8086

6/1978

5-10

29.000

1 MB

Primeira CPU de 16 bits em um chip

8088

6/1979

5-8

29.000

1 MB

Usado no IBM PC

80286

2/1982

8-12

134.000

16 MB

80386

10/1985

16-33

275.000

4 GB

Primeira CPU de 32 bits

80486

4/1989

25-100

1,2M

4 GB

Cache interno de 8K

Pentium

3/1993

60-233

3,1M

4 GB

2 pipelines; MMX

Pentium Pro

3/1995

150-200

5,5M

4 GB

Cache interno em dois nveis

Pentium II

5/1997

233-400

7,5M

4 GB

Pentium Pro com MMX

Esquema de proteo de memria

SUN

1987: SPARC (Scalable Processor ARChitecture)

RISC: Reduced Instruction Set


Mquina de 32 bits

1995: UltraSPARC I

Mquina de 64 bits
Orientada a multimdia
VIS: Visual Instruction Set

JVM
JVM: Java Virtual Machine
SUN
Portabilidade: independente de CPU
Problema: desempenho
CPU especfica:

picoJava II (somente uma definio)


SUN microJava 701 (uma concretizao do picoJava II)

Vous aimerez peut-être aussi