Vous êtes sur la page 1sur 96

Organizao de Computadores

Hardware
Professor Marcus Vincius Midena Ramos

Colegiado de Engenharia de Computao

(74)3614.1936

marcus.ramos@univasf.edu.br

www.univasf.edu.br/~marcus.ramos
Computador
Ferramenta
indispensvel;
Faz parte das nossas
vidas;
Por si s no faz nada
de til;
Grande capacidade de
resoluo de
problemas;
Necessita ser
instrudo.
Computador
Capaz apenas de excutar
poucas tarefas bsicas
distintas, todas muito
simples;
extremamente rpido;
Possui um comportamento
previsvel;
excelente para reproduzir
roteiros pr-concebidos;
No se cansa e pode ser
usado exausto.
Computador =
Hardware (corpo) +
Software (alma)
O corpo fornece suporte para a
alma.
O corpo procura suprir as
necessidades da alma.
O corpo pode criar novas
possibilidades para a alma, ou ento
estabeldcer limitaes.
A alma se expressa atravs do
corpo.
A alma usa os recursos do corpo.
Computador
Hardware:

Parte fsica: placas,


perifricos, circuitos, cabos e
componentes.
Quanto mais usado, mais
propenso falhas.
Sozinho, no serve para
nada.
Vem pronto da fbrica.
Computador
Software:

Parte intangvel:
conhecimentos e idias que
fazem o hardware exibir
um certo comportamento.
Quanto mais usado, menos
propenso falhas.
Confere funcionalidade ao
hardware.
Pode ser adquirido ou
desenvolvido.
Modelo de von Neumann
Matemtico hngaro;
Props um modelo de arquitetura composto por
quatro partes distintas;
Nesse modelo, o programa a ser executado pelo
computador ficava armazenado na memria do
mesmo;
Grande flexibilidade e rapidez, pois o hardware no
precisa ser modificado e no precisava ser lido em
cartes perfurados;
A maioria dos computadores modernos adota essa
arquitetura.
Modelo de von Neumann
Cincia x Tecnologia
Evoluo cientfica x tecnolgica
Exemplo do automvel
Modelo de von Neumann

Memria

Unidade Central de
Entrada Sada
Processamento
Modelo de von Neumann

Memria

Unidade Central de
Entrada Sada
Processamento
Modelo de von Neumann
Unidade Central de Processamento (UCP ou
CPU):
L, decodifica e executa as instrues armazenadas
na memria;
Realiza operaes lgicas e aritmticas;
Pode ler modificar o valor de alguma posio de
memria;
Pode transferir valores da entrada para a memria e
da memria para a sada;
Executa as instrues seqencialmente, at o
trmino do programa ou at encontrar algum
desvio explcito.
Modelo de von Neumann

Memria

Unidade Central de
Entrada Sada
Processamento
Modelo de von Neumann
Memria:
dividida em clulas (bytes)
Cada clula armazena um valor e possui um
endereo;
comandada pela CPU, que informa em qual
endereo deseja executar uma operao (de leitura
ou escrita);
Operaes de leitura no modificam os valores
armazenados;
Operaes de escrita apagam os valores anteriores,
substituindo-os pelos novos valores;
Exemplo de memria com 10 posies;
As posies so numeradas 0 a 9;
Valores permanecem at que um novo valor seja
armazenado na mesma posio ou at que a
memria seja desligada.

Endereos
0 1 2 3 4 5 6 7 8 9

10 28 93 55 72 15 6 52 245 199

Valores
Operao de leitura

Obter o valor armazenado na posio (endereo) 7


Resultado: 52

Endereos
0 1 2 3 4 5 6 7 8 9

10 28 93 55 72 15 6 52 245 199

Valores
Operao de escrita

Armazenar o valor 31 na posio (endereo) 7

0 1 2 3 4 5 6 7 8 9

10 28 93 55 72 15 6 X
52 245 199

0 1 2 3 4 5 6 7 8 9

10 28 93 55 72 15 6 31 245 199
Modelo de von Neumann

Memria

Unidade Central de
Entrada Sada
Processamento
Modelo de von Neumann
Entrada e Sada:
Sob comando da CPU, possvel ler valores de um
dispositivo de entrada, armazenando-os na
memria;
Sob comando da CPU, possvel ler valores da
memria, enviando-os para um dispositivo de sada;
Existe uma grande variedade de dispositivos de
entrada e sada;
Conceitualmente, no entanto, eles so passivos e
obedecem ao comando da CPU.
Modelo de von Neumann

Os dados e os programas so
armazenados na memria, em regies
distintas;
Um programa composto por uma
coleo de instrues que so lidas e
executadas em seqncia.
Modelo de von Neumann

Programa Dados

Unidade Central de
Entrada Sada
Processamento
Modelo de von Neumann

Os programas so formados,
essencialmente, por comandos
(instrues sobre o que fazer);
As instrues so muito simples e
executadas muito rapidamente;
Modelo de von Neumann
Programa Dados

01 ---
02 ---
03 ---
04 ---
...
Modelo de von Neumann
As instrues so lidas
seqencialmente da memria, uma
aps a outra;
Uma instruo pode (i) ler um valor da
entrada; (ii) enviar um valor para a
sada; (iii) gerar um novo valor; (iv)
indicar o endereo da prxima
instruo a ser executada.
Modelo de von Neumann

A execuo de um novo comando


inicia apenas depois que a execuo do
anterior tiver terminado (execuo
seqencial);
Se no houver nenhuma indicao
explcita, a instruo armazenada no
endereo de memria seguinte
executada.
Modelo de von Neumann

Eventualmente, um comando pode


modificar o valor de um dado existente
na memria, solicitar novos dados ao
usurio ou enviar dados para a sada.
Modelo de von Neumann
Programa Dados

01 ---
02 ---
03 ---
04 ---
...
Modelo de von Neumann
Programa Dados

01 ---
02 ---
03 ---
04 ---
...
Modelo de von Neumann
Programa Dados

01 ---
02 ---
03 ---
04 ---
...
Modelo de von Neumann
Programa Dados

01 ---
02 ---
03 ---
04 ---
...
Modelo de von Neumann
Exemplos de evoluo tecnolgica:
Velocidade da CPU;
Quantidade de registradores;
Quantidade de bits maniupulados
simultaneamente;
Quantidade de posies de memria;
Velocidade de acesso memria;
Tamanho do computador;
Consumo de energia;
Preo do computador;
Possibilidade de expanso do computador;
Diversificao dos dispositivos de entrada e sada.
Exemplo
Simple Computer Simulator:
13 instrues
100 posies de memria
As posies de memria so endereadas 00 a
99
Funciona no browser:
http://community.vcsu.edu/facultypages/curt.
hill/My_Webpage/simulators.htm
Exemplo
Simple Computer Simulator:
AX: registrador interno CPU (nico);
PC: contm o endereo da primeira instruo a
ser executada;
Delay: intervalo de tempo entre a execuo de
instrues consecutivas;
Run: executa o programa at o fim;
Single step: executa apenas uma instruo
(indicada pelo PC).
Instrues
Cada instruo tem um nome;
Para a mquina, nomes nada significam;
Nomes precisam ser traduzidos para nmeros;
Linguagem de Montagem x Linguagem de
Mquina;
Cada instruo tem um nmero;
A maioria das instrues tem um complemento
(dois nmeros), outras usam apenas um nmero;
LOAD
Cdigo 161;
Usa nmero adicional;
Formato: 161 <endereo>
Copia o valor armazenado na posio de memria
<endereo> para o registrador AX;
O valor anterior de AX perdido;
O valor da posio de memria <endereo>
permanece inalterado;
Exemplo:
161 25
ou
LOAD 25
Modelo de von Neumann
Programa Dados

LOAD 25
STORE 26 25 17

26 4
Modelo de von Neumann
Programa Dados

LOAD 25
STORE 26 25 17

26 4

LOAD 25
Modelo de von Neumann
Programa Dados

LOAD 25
STORE 26 25 17

26 4

LOAD 25
Modelo de von Neumann
Programa Dados

LOAD 25
STORE 26 25 17

26 4

LOAD 25 17
Modelo de von Neumann
Programa Dados

LOAD 25
STORE 26 25 17

26 4

17
STORE
Cdigo 160;
Usa nmero adicional;
Formato: 160 <endereo>
Copia o valor armazenado no registrador AX para
a posio de memria <endereo>;
O valor anterior da posio de memria
<endereo> perdido;
O valor de AX permanece inalterado;
Exemplo:
160 25
ou
STORE 25
Modelo de von Neumann
Programa Dados

LOAD 25
STORE 26 25 17

26 4

STORE 26 17
Modelo de von Neumann
Programa Dados

LOAD 25
STORE 26 25 17

26 17

STORE 26 17
Modelo de von Neumann
Programa Dados

LOAD 25
STORE 26 25 17

26 17

17
INPUT
Cdigo 71;
Usa nmero adicional;
Formato: 71 <endereo>
Aguarda o usurio digitar um nmero e depois
armazena o mesmo na posio de memria
<endereo>;
O valor anterior da posio de memria
<endereo> perdido;
O valor de AX permanece inalterado;
Exemplo:
71 25
ou
INPUT 25
Modelo de von Neumann
Programa Dados

INPUT 25
25 17

26 4

INPUT 25 17
Modelo de von Neumann
Programa Dados

INPUT 25
25 17

26 4

INPUT 25 17
Modelo de von Neumann
Programa Dados

INPUT 25
25 17

26 4

74 INPUT 25 17
Modelo de von Neumann
Programa Dados

INPUT 25
25 74

26 4

74 INPUT 25 17
OUTPUT
Cdigo 72;
Usa nmero adicional;
Formato: 72 <endereo>
Envia o valor armazenado na posio de memria
<endereo> para o dispositivo de sada;
O valor da posio de memria <endereo>
permanece inalterado;
O valor de AX permanece inalterado;
Exemplo:
72 25
ou
OUPUT 25
Modelo de von Neumann
Programa Dados

OUTPUT 26
25 17

26 4

OUTPUT 26 17
Modelo de von Neumann
Programa Dados

OUTPUT 26
25 17

26 4

OUTPUT 26 17
Modelo de von Neumann
Programa Dados

OUTPUT 26
25 17

26 4

OUTPUT 26 17 4
ADDI
Cdigo 44;
Usa nmero adicional;
Formato: 44 <valor>
Soma o contedo corrente do registrador AX com
<valor>, e deixa o resultado no prprio AX;
Exemplo:
44 01
ou
ADDI 01
Modelo de von Neumann
Programa Dados

ADDI 05
25 17

26 4

ADDI 05 17
Modelo de von Neumann
Programa Dados

ADDI 05
25 17

26 4

ADDI 05 22
SUBI
Cdigo 45;
Usa nmero adicional;
Formato: 45 <valor>
Subtrai do contedo corrente do registrador AX
<valor>, e deixa o resultado no prprio AX;
Exemplo:
45 01
ou
SUBI 01
ADD
Cdigo 50;
Usa nmero adicional;
Formato: 50 <endereo>
Soma o contedo corrente do registrador AX com
o valor armazenado na posio de memria
<endereo>, e deixa o resultado no prprio AX;
O contedo da posio de memria <endereo>
permanece inalterado;
Exemplo:
50 25
ou
ADD 25
Modelo de von Neumann
Programa Dados

ADD 26
25 17

26 4

ADD 26 17
Modelo de von Neumann
Programa Dados

ADD 26
25 17

26 4

ADD 26 17
Modelo de von Neumann
Programa Dados

ADD 26
25 17

26 4

ADD 26 21
SUB
Cdigo 51;
Usa nmero adicional;
Formato: 51 <endereo>
Subtrai do contedo corrente do registrador AX o
valor armazenado na posio de memria
<endereo>, e deixa o resultado no prprio AX;
O contedo da posio de memria <endereo>
permanece inalterado;
Exemplo:
51 25
ou
SUB 25
MUL
Cdigo 52;
Usa nmero adicional;
Formato: 52 <endereo>
Multiplica o contedo corrente do registrador AX
pelo valor armazenado na posio de memria
<endereo>, e deixa o resultado no prprio AX;
O contedo da posio de memria <endereo>
permanece inalterado;
Exemplo:
52 25
ou
MUL 25
DIV
Cdigo 53;
Usa nmero adicional;
Formato: 53 <endereo>
Divide o contedo corrente do registrador AX
pelo valor armazenado na posio de memria
<endereo>, e deixa o resultado no prprio AX;
O contedo da posio de memria <endereo>
permanece inalterado;
Exemplo:
53 25
ou
DIV 25
HALT
Cdigo 00;
No usa nmero adicional;
Formato: 00
Encerra a execuo do programa e devolve o
controle para o sistema operacional;
Exemplo:
00
ou
HALT
Conjunto completo de instrues
Exemplo de programa
Linguagem de montagem Linguagem de mquina

INPUT 25 71 25
INPUT 26 71 26
LOAD 25 161 25
ADD 26 50 26
ADDI 01 44 01
STORE 27 160 27
OUTPUT 27 72 27
HALT 00
Exemplo de programa
Linguagem de montagem Linguagem de mquina

INPUT 25 71 25
INPUT 26 71 26
LOAD 25 161 25
ADD 26 50 26
ADDI 01 44 01
STORE 27 160 27
OUTPUT 27 72 27
HALT 00
Exemplo de programa
Linguagem de montagem Linguagem de mquina

INPUT 25 71 25
INPUT 26 71 26
LOAD 25 161 25
ADD 26 50 26
ADDI 01 44 01
STORE 27 160 27
OUTPUT 27 72 27
HALT 00
Exemplo de programa
Linguagem de montagem Linguagem de mquina

INPUT 25 71 25
INPUT 26 71 26
LOAD 25 161 25
ADD 26 50 26
ADDI 01 44 01
STORE 27 160 27
OUTPUT 27 72 27
HALT 00
Exemplo de programa
Linguagem de montagem Linguagem de mquina

INPUT 25 71 25
INPUT 26 71 26
LOAD 25 161 25
ADD 26 50 26
ADDI 01 44 01
STORE 27 160 27
OUTPUT 27 72 27
HALT 00
Exemplo de programa
Linguagem de montagem Linguagem de mquina

INPUT 25 71 25
INPUT 26 71 26
LOAD 25 161 25
ADD 26 50 26
ADDI 01 44 01
STORE 27 160 27
OUTPUT 27 72 27
HALT 00
Exemplo de programa
Linguagem de montagem Linguagem de mquina

INPUT 25 71 25
INPUT 26 71 26
LOAD 25 161 25
ADD 26 50 26
ADDI 01 44 01
STORE 27 160 27
OUTPUT 27 72 27
HALT 00
Exemplo de programa
Linguagem de montagem Linguagem de mquina

INPUT 25 71 25
INPUT 26 71 26
LOAD 25 161 25
ADD 26 50 26
ADDI 01 44 01
STORE 27 160 27
OUTPUT 27 72 27
HALT 00
Desvio do fluxo
Fluxo normal: seqencial

00 --- (primeiro esta)


01 --- (depois esta)
02 --- (etc)
03 ---
04 ---
05 --
06 --
07 ---
Desvio do fluxo
Fluxo desviado: uma instruo indica qual deve ser a
prxima a ser executada

00 --- (primeiro esta)


01 --- (depois esta)
02 --- (executa a instruo que est no endereo 5)
03 ---
04 ---
05 --- (depois esta!!)
06 ---
07 ---
Desvio do fluxo
Fluxo desviado: pode ser CONDICIONAL ou
INCONDICIONAL

00 --- (primeiro esta)


01 --- (depois esta)
02 --- (V PARA a instruo que est no endereo 5)
03 ---
04 ---
05 --- (depois esta!!)
06 ---
07 ---
Desvio do fluxo
Fluxo desviado: pode ser CONDICIONAL ou
INCONDICIONAL

00 --- (primeiro esta)


01 --- (depois esta)
02 --- (V PARA a instruo que est no endereo 5 SE...)
03 ---
04 ---
05 --- (depois esta!!)
06 ---
07 ---
JPOS
Cdigo 127;
Usa nmero adicional;
Formato: 127 <endereo>
Se AX>0, faz com que a prxima instruo a ser
executada seja aquela que est armazenada na
posio de memria <endereo>; caso contrrio,
executa a instruo seguinte;
Exemplo:
127 25
ou
JPOS 25
JZERO
Cdigo 128;
Usa nmero adicional;
Formato: 128 <endereo>
Se AX=0, faz com que a prxima instruo a ser
executada seja aquela que est armazenada na
posio de memria <endereo>; caso contrrio,
executa a instruo seguinte;
Exemplo:
128 25
ou
JZERO 25
Exemplo de programa
00 INPUT 25 71 25
02 INPUT 26 71 26
04 LOAD 25 161 25
06 SUB 26 51 26
08 JPOS 13 127 13
10 OUPUT 26 72 26
12 HALT 00
13 OUTPUT 25 72 25
15 HALT 00

Determina o maior de dois nmeros informados


pelo usurio
Diferenas para um
computador real
Quantidade de posies de memria;
Quantidade de bits de cada posio de memria;
Quantidade e variedade de instrues;
Velocidade de execuo;
Implementao em hardware;
Variedade de dispositivos de entrada e de sada.
Unidades
Sistema binrio
1 bit = 0 ou 1 (menor unidade de informao)
1 byte = 8 bits
1 KiloByte = 1KB = 1.024 bytes
1.024 = 210
1 MegaByte = 1MB = 1.024 KiloBytes = 1.024*1.024
bytes ~ 1 milho de bytes
1 GigaByte = 1 GB = 1.024 MegaBytes =
1.024*1.024*1.024 bytes ~ 1 bilho de bytes
Bits, Bytes, Herz, ...
Kilo, Mega, Giga, Tera...
Sistemas de numerao
Sistema decimal:
xyz =
x*100 + y*10 + z*1 =
x*102 + x*101 + x*100

Sistema binrio:
xyz =
x*4 + y*2 + z*1 =
x*22 + x*21 + x*20
Sistemas de numerao
Sistema decimal:
xyz =
x*100 + y*10 + z*1 =
x*102 + x*101 + x*100

Sistema binrio:
xyz =
x*4 + y*2 + z*1 =
x*22 + x*21 + x*20
Sistemas de numerao
Sistema decimal:
51810 =
5*100 + 1*10 + 8*1 =
5*102 + 1*101 + 8*100

Sistema binrio:
1012 =
1*4 + 0*2 + 1*1 =
1*22 + 0*21 + 1*20 = 510
Exerccio
Fazer um programa para:
Calcular a quantidade de rao necessria
para alimentar X vacas e Y bezerros durante Z
dias, sabendo que cada vaca consome M Kg
por dia e cada bezerro consome N Kg por dia;
Ligar o computador;
Carregar o simulador;
Digitar o programa;
Conferir o resultado da execuo com os seguintes
valores:
10 vacas, 6 bezerros, 3Kg/vaca/dia, 1
Kg/bezerro/dia, 30 dias.

Vous aimerez peut-être aussi