Você está na página 1de 91

Fundamentos de Arquiteturas de

Computadores

Prof. Marcos Quinet


Universidade Federal Fluminense UFF
Plo Universitrio de Rio das Ostras - PURO

Motivao
Atravs do estudo da estrutura funcional e
organizacional de um sistema computacional, o aluno
ser capaz de identificar os componentes que o
compe, a funo de cada um deles, e a interao com
os demais componentes do sistema.
Todas as reas da Cincia da Computao baseiam-se
no processamento de informaes, que so realizados
atravs de operaes bsicas, extremamente simples,
que sero estudadas ao longo da disciplina.
2

Objetivo do Curso
Toda a base da Cincia da Computao est na
compreenso do funcionamento bsico de um
computador, que realizado atravs de operaes
elementares, mas que so utilizadas na
implementao de poderosos e complexos sistemas
computacionais.
Nos captulos seguintes veremos como funciona e
qual o propsito dos elementos que, operando em
conjunto, definem o que chamamos de computador.

Bibliografia
Introduo Organizao de Computadores Mrio A. Monteiro; ed.
LTC
Introduo Cincia da Computao Guimares/Lages; ed. LTC
Arquitetura e Organizao de Computadores Willian Stallings; ed.
Prentice Hall
Organizao Estruturada de Computadores Andrew S. Tanenbaum;
ed. LTC
Arquitetura de Computadores Hennessy e Patterson; ed. Campus

Material das aulas, listas de exerccios e datas de avaliaes:


http://www.professores.uff.br/mquinet

Introduo
A arquitetura de um sistema computacional
estabelece o modelo da organizao e funcionamento
de um sistema de processamento, com todas suas
partes, divididas em sees, interagindo entre si.
Os componentes e suas relaes so representados
atravs de sistemas hierrquicos, o que mostra-se
ideal para o estudo de conjuntos complexos e que
atuam em diferentes nveis; separados por suas
caractersticas, estudaremos o funcionamento de cada
um destes componentes.
5

Introduo Componentes Bsicos

Unidade Central
de Processamento

Sistema de Interconexo

Memria Principal

Interface de E/S

Disco
Vdeo
Rede
Etc.

Componentes Bsicos
Todo sistema de computao constitudo, ao
menos, pelos seguintes componentes:
Um mdulo que realize as operaes necessrias para a
execuo dos programas, a unidade central de processamento;
Uma rea de trabalho para o armazenamento das informaes
que sero processadas, a memria principal;
Dispositivos para o recebimento de informaes e
retorno/armazenamento dos resultados, os dispositivos de
entrada e sada de dados;
E finalmente, um meio atravs do qual os dispositivos possam
se comunicar e transmitir dados, os barramentos de
comunicao.

Abstraes
Tanto o hardware quanto o software so
constitudos de nveis hierrquicos, o nvel mais alto
esconde os detalhes dos mais baixos.
Utilizao dessas camadas

abstraes.

A Interface entre os dois nveis de abstrao,


hardware e software bsico caracteriza a arquitetura
do conjunto de instrues da mquina.
Uma interface abstrata permite que vrias
implementaes
distintas
de
sistemas
computacionais executem o mesmo software.
8

Abstraes
Um exemplo de abstrao cotidiano e presente na vida de
grande parte das pessoas a TV. Todos sabem como
utiliz-la, mas como ela funciona? Como as informaes
so transmitidas? Como seu funcionamento, do ponto
de vista eletrnico? A maioria das pessoas que utilizam
uma TV a operam em um nvel de abstrao muito alto.
Hoje, o mesmo acontece com os computadores. Internet,
editores de texto, jogos, etc., so recursos que muito
usurios dominam, mas sem fazer idia do que existe e o
que est acontecendo dentro da torre ou gabinete de seu
computador. Este conhecimento o que diferencia o
especialista em computao do usurio comum.
9

Subsistemas
Ao estudarmos qualquer assunto complexo e/ou com
grande riqueza de detalhes, a estratgia mais natural
para facilitar o processo de aprendizado subdividir o
tema principal em partes menores, e ento,
preocupar-se somente com uma poro por vez.
Aps estudadas todas as partes, o passo final
enxergar como estas se relacionam, tratando agora o
objeto de estudo como um todo e abstraindo, se
possvel, os detalhes mais especficos de cada uma das
partes.
10

Exemplo de Subsistema
Abaixo, um exemplo (ainda bastante simplificado) de
alguns componentes presentes na Unidade Central de
Processamento (UCP ou CPU):
Registradores

Unidade Lgica e Aritmtica

Rn
...

Barramento Interno

R1
R0

Unidade de Controle

11

Histria dos sistemas computacionais


Ao estudar a histria da computao, nossa meta no
deve ser somente situar historicamente o momento de
criao destas mquinas de calcular e observar a linha
evolutiva que trilharam (alm de ser extremamente
interessante observar os avanos tecnolgicos colossais
em curtssimos perodos de tempo).
O mais importante condicionar a mente a desenvolver
IDEIAS!!! Devemos aprender a pensar, a criar recursos
para atender nossas necessidades e contribuir,
melhorando o que j existe.

12

Histrico
1642

Gerao 0
Mecnicos

1945 1955 1965

1 Gerao
Vlvulas

1980

4 Gerao
VLSIs

1990

5 Gerao
ULSIs

2 Gerao
Transistores
3 Gerao
Circuitos
Integrados

13

Histrico dos processadores

14

Gerao 0 - Mecnicos
Mquina de calcular de Pascal (1642)
permitia apenas adio e subtrao
uso de engrenagens e funcionava manualmente com manivela

Leibniz (~1672)

multiplicao e diviso

Evoluo da mquina de Pascal, com pequenas melhorias e novos


recursos, sendo mais rpida

Babbage (~1822)

Mquina de Diferenas

clculo de tabelas de nmeros teis clculos navais


executava apenas um algoritmo e permitia s adio e subtrao
mtodo de sada: perfurao dos resultados em uma placa de
cobre com um buril de ao

15

Exemplo de uma mquina de


clculo

16

Mquina de Clculo de Pascal

17

Mquina de Diferenas, de Charles


Babbage (1822)

18

Gerao 0 - Mecnicos
Babbage (~1834)

Mquina Analtica

avano: mquina de uso geral


ainda era inteiramente mecnica (rodas dentadas e
engrenagens)
4 componentes:
armazenamento (memria);
engenho (unidade de clculo);
seo de entrada (leitora de cartes perfurados);
seo de sada (sada perfurada e impressa).
tecnologia de hardware da poca

imprecisa

19

Gerao 0 - Mecnicos
Projeto de calculadoras automticas
uso de rels eletromagnticos.
Aiken (1944, Harvard)
Mark I
computador de uso geral construdo com rels.
72 palavras de 23 dgitos decimais;
Baseado nos trabalhos de Babbage;
Mark II
No saiu do projeto, pois a tecnologia de rels
tornou-se obsoleta em pouco tempo, finalizando a gerao
dos dispositivos mecnicos, dando lugar ao incio da era
eletrnica.
Partes mecnicas
baixa velocidade de processamento e
pouca confiabilidade.

20

1 Gerao - Vlvulas
ENIAC (Electronic Numerical Integrator And Computer)
Primeiro computador digital de propsito geral (1946)
Criado inicialmente para a realizao de clculos balsticos
18 mil vlvulas, 10 mil capacitores, 70 mil resistores, um peso de 30
toneladas, consumo de 140 quilowatts e 800 km de cabos
Programao feita em painis (~ 6000 chaves multiposicionais),
com redistribuio de cabos
conhecimento profundo do
hardware
Mquina decimal, com 20 registradores capazes de armazenar um
valor numrico de 10 dgitos
Rpida

5.000 operaes/segundo

Duas ordens de magnitude maior e quatro ordens de magnitude


mais lento que as mquinas de hoje
21

ENIAC

22

1 Gerao - Vlvulas
EDVAC (Electronic Discrete Variable Automatic Computer)
Mquina IAS (Institute of Advanced Studies,1946)
desenvolvida por John von Neumann;
aritmtica binria ao invs da decimal;
definio de uma arquitetura de computadores com programa
armazenado;

Mquina de Von Neumann


ainda hoje base de quase todos os computadores digitais;

UNIVAC I (1949, Mauchly e Eckert)


primeiro computador para fins comerciais;

IBM-701 (1953), 704 (1956) e 709 (1958)


23

Vlvula

Os primeiros sistemas computacionais tinham como


componente principal as vlvulas
A funo de uma vlvula eletrnica abrir ou fechar um
circuito, dependendo da intensidade da corrente que passa
atravs dela em determinado momento
24

2 Gerao - Transistores
Transistor
melhor custo, tamanho e desempenho do
que as vlvulas;
base da lgica digital
ligar e desligar a
corrente eltrica em um dispositivo (2
estados).
TX-0 (Lincoln Laboratory do M.I.T., 1957)
primeiro
computador
experimental.

transistorizado,

apenas

PDP-1 (DEC - Digital Equipment Corporation)


marco inicial da indstria de minicomputadores.

IBM 7090 e 7094 - srie transistorizada


25

Comparao entre vlvula e


transistores

26

3 Gerao - Circuitos Integrados


LSI (Large Scale Integration)
dezenas de transistores colocados em uma nica pastilha;
surgimento da microeletrnica;
computadores menores, mais rpidos e mais baratos.

Srie 360 da IBM (1964)


famlia de mquinas com mesma linguagem de montagem, mas com
tamanhos e potncias diferentes;
surgimento da tcnica de MULTIPROGRAMAO;
sistema operacional OS/360 para gerenciar os recursos do hardware.

PDP-8 da DEC (1965)


Minicomputador de baixo custo (U$ 16.000!);
A partir do modelo PDP-8/E foi introduzida a estrutura de barramento.

27

3 Gerao - Circuitos Integrados


Lmina (Wafer)

Pastilha (chip)

Porta lgica: implementa


uma funo booleana.
Clula de memria:
armazena um bit de
informao.

Porta Lgica
Pastilha empacotada

28

4 Gerao - VLSIs
VLSI (Very Large Scale Integration)
milhes de transistores armazenados em uma nica pastilha;
computadores cada vez menores e mais rpidos;
A miniaturizao de componentes eletrnicos levou ao surgimento
dos computadores pessoais, criando um novo segmento no mercado;
Intel 4004 (1971): o primeiro microprocessador;
Intel 8080 (1974): microprocessador de 8 bits de propsito geral.

Surgimento dos computadores pessoais


Srie Intel de chips - tornou-se padro;
Exs: 8086, 8088, 80286, 80386, 80486, Pentium.
IBM PC adotou o chip Intel para CPU.
29

5 Gerao - ULSIs
ULSI (Ultra Large Scale Integration)
Componentes cada vez menores de de mais baixo custo, o que
permitiu a evoluo de aplicaes computacionais mais
complexas.

Evoluo das aplicaes:


Sistemas especialistas, sistemas multimdia, banco de dados
distribudos, inteligncia artificial, redes neurais, etc.
Necessidade de maior capacidade de processamento e
armazenamento de dados.

30

5 Gerao - ULSIs
Novos paradigma no projeto de computadores:
Arquiteturas Paralelas;
Processamento Distribudo nos Sistemas Operacionais;
Redes de Alta Velocidade;
Linguagens e metodologias de programao concorrentes;
Linguagens naturais: interface homem/mquina.

Novas aplicaes:
Caixas eletrnicos;
Computadores em automveis;
Notebooks;
Projeto genoma;
World Wide Web;
Computao distribuda em escala mundial.
31

Novas tecnologias
Para o desenvolvimento de aplicaes mais eficientes,
programadores devem se familiarizar com novos
aspectos da organizao de computadores.
Hierarquia de memria (memria principal, memria
cache em vrios nveis, etc.);
Paralelismo de execuo de instrues;
Novas tecnologias de processamento (processadores
multicore, etc.).

32

Histrico do Desempenho das


Estaes de Trabalho
1 20 0
D E C A lp h a 2 1 2 6 4 /6 0 0
1 10 0
1 00 0
900

P e rf o r m a n c e

800
700
600
500

D E C A lp h a 5 /5 0 0

400
300
D E C A lp h a 5 / 3 0 0
200
100

D E C A lp h a 4 /2 6 6
S U N - 4 / M IP S

M IP S

IB M

260

M 2000

R S 6000

0
1987

M /1 2 0
1988

1 9 89

1 99 0

IB M P O W E R 1 0 0
D E C A X P /5 0 0
H P 9 0 0 0 /7 5 0
1991

1 99 2

199 3

19 94

1995

19 96

1 99 7

Year

33

Histrico do Desempenho das


Estaes de Trabalho

1965 IBM 360/50


0.15 MIPS
64 KB
$1M

1977 DEC VAX 11/780


1 MIPS
1 MB
$200 K

1999 IBM PC 300


750 MIPS
64 MB
$2060

$ 6.6M por MIPS

$ 200K por MIPS

$2.75 por MIPS


34

Evoluo de processadores Intel

35

Evoluo de processadores Intel

36

Desempenho

37

Sistemas de numerao - Introduo


Os computadores eletrnicos tem como base para seu
funcionamento a utilizao de eletricidade. Diferente de outras
mquinas que a presena ou ausncia de eletricidade apenas
significam se esto ligadas ou desligadas, um computador deve
utiliz-la para manipular e armazenar informaes.
A partir dos dois estados representados pela presena ou
ausncia de eletricidade, todo o trabalho realizado pelo
computador ser baseado no sistema binrio, onde trabalha-se
somente com os smbolos 0 e 1 para a representao de
informaes.
38

Sistemas de Numerao
Os sistemas de numerao surgiram com a evoluo
da civilizao para atender a necessidade de registrar
informaes sobre quantidades.
Sistema decimal: o sistema de numerao mais
comum de ser empregado, o que estamos mais
habituados a trabalhar e pensar (mas existem excees!
Ex.: dzia, grosa).
Surgimento a partir da analogia com a contagem utilizando os
dedos da mo;
Criao da notao posicional (nmeros em posies diferentes
representam valores diferentes - unidade, dezena, centena, etc.).

39

Sistemas de Numerao
Base de um sistema de numerao: quantidade de
algarismos disponveis para a representao.
Ex: base decimal: 0 1 2 3 4 5 6 7 8 9 base 10

A posio ocupada por um algarismo em um nmero


altera seu valor de uma potncia de 10 para cada casa
esquerda.
Ex: 125 = 1 x 102 + 2 x 101 + 5 x 100

40

Nveis de Programao
Linguagem de montagem ainda est longe da notao
utilizada pelas pessoas que querem gerar programas
para resolver problemas.
Soluo: criar um conjunto de instrues (uma
linguagem de mais alto nvel) que seja mais dirigido s
pessoas do que mquina.
Linguagem de programao de alto nvel traduzida pelo
compilador.
A+B

add A,B

1000110010100000

41

Representao Simblica
No programa em linguagem de montagem, as
instrues
so
representadas
atravs
de
abreviaes, chamadas de mnemnicos, que
associam o nome da instruo sua funo, como por
exemplo:
ADD
SUB

Soma
Subtrao

MPY

Multiplicao

DIV

Diviso

LOAD

Carregar dados da memria

STOR

Armazenar dados na memria


42

Exemplo de instrues em diferentes


nveis
Programa
em linguagem
de alto nvel (C)

swap (int v[], int k)


{ int temp;
temp = v[k];
v[k] = v[k+1];
v[k+1] = temp;
}

Compilador C
Programa
em linguagem
de montagem (MIPS)

swap:
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

Montador

Programa
em linguagem
de mquina

0001011101110110
1100011001010101
0000000111110101
0011001100110011
1100011110001110
1110001111000000
1010101010101010

43

Representao da Informao
Sistema Binrio: bit (binary digit): 1 ou 0 sistema de
numerao conhecido como base 2.
Sinal eltrico mais simples tem dois estados,
representados por sim e no.
No confundir bases: 102 = 210 ; dez igual a dois???
Instrues: conjunto de bits inteligvel pelo
computador.
Ex: 1000110010100000 (deve somar dois nmeros).

44

Representao da Informao
Repr. Binria

Potncia

Repr. Decimal

20

10

21

100

22

1000

23

10000

24

16

100000

25

32

1000000

26

64

10000000

27

128

100000000

28

256

1000000000

29

512

10000000000

210

1024
45

Representao de Informao
Representao binria: perfeitamente adequada para
computadores, mas para seres humanos...
Soluo: trabalhar com bases que utilizem a potncia
de 2; as mais utilizadas so octal (23) e hexadecimal
(24).
Octal: oito algarismos para representao; um algarismo octal
representa 3 bits.
01234567
Hexadecimal: dezesseis algarismos para representao; um
algarismo hexadecimal representa 4 bits.
0123456789ABCDEF

46

Representao de Informao
A princpio, as bases binria, octal e hexadecimal podem
parecer um conceito totalmente novo, mas no so. Sua
formao e comportamento funcionam exatamente como
na base decimal; a lgica de construo exatamente a
mesma!
Lembre-se da base decimal, como temos um conjunto de
smbolos ou algarismos, que associamos a certas
quantidades de alguma coisa que queremos contar. Quando
no existem mais algarismos a serem utilizados sozinhos,
comeamos a combin-los, seguindo um critrio
estabelecido pela notao posicional
47

Tabela de Representao de
Sistemas de Numerao
Decimal

Binrio

Hexadecimal

Octal

10

11

100

101

110

111

1000

10

1001

11

10

1010

12

11

1011

13

12

1100

14

13

1101

15

14

1110

16

15

1111

17
48

Valores Binrios
Ser importante identificar se um valor maior que
o outro quando estivermos trabalhando em sistemas
de numerao que no sejam decimais. No h
segredo, funciona da mesma forma que no sistema
decimal.
Qual valor maior?
10100101010010 ou 11010110001011?
11111 ou 100000?

49

Converses entre Bases


Converso binrio-octal: como 1 algarismo octal
representa 3 algarismos binrios, separar os bits de um
nmero binrio em grupos de 3 bits e converter cada um
destes grupos para o algarismo octal equivalente.

Ex.: 0011111101012
=

001 111
1

110

101

= 17658

50

Converses entre Bases


Converso binrio-hexadecimal: anloga a utilizada
na converso binrio-octal, a nica diferena que
os grupos de algarismos do binrio sero formados
por 4 bits.

Ex.: 0011111101012 =

0011 1111 0101


3

= 3F516

51

Converses entre Bases


Para as converses octal-binrio e hexadecimal-binrio
basta aplicar a operao inversa, ou seja, para cada
algarismo, obter a representao em binrio,
respeitando a ordem posicional.
MUITO IMPORTANTE!!! No esquecer de incluir zeros
no-significativos!

Ex: 3F516

316 = 112
F16 = 11112
516 = 1012

0011111101012
e no
n o 1111111012 = 1FD16

52

Exerccios
Efetue as seguintes converses de base:
101001011012 = ( )16 = ( )8
5FB716 = ( )2 = ( )8
743258 = ( )2 = ( )16

Dica: para as converses octal/hexadecimal e


hexadecimal/octal, no h frmula direta, estes
devem ser convertidos primeiro para binrio e
depois convertidos novamente.

53

Converses entre Bases


Converso de uma base qualquer para decimal: seja
um nmero em uma base b no-decimal composto
pelos algarismos an, an-1, ... a1, a0, obteremos seu
equivalente decimal da forma:
Nb = an x bn + an-1 x bn-1 + ... + a1 x b1 + a0 x b0
Exemplos:
5F316 = 5 x 162 + 15 x 161 + 3 x 160 = 1280 + 240 + 3 = 152310
64378 = 6 x 83 + 4 x 82 + 3 x 81 + 7 x 80 = 3072 + 256 + 24 + 7 = 335910

54

Converses entre Bases


Converso da base decimal para uma base qualquer: o
nmero decimal dividido sucessivas vezes pela base
que se deseja a converso, at que no possa mais ser
dividido. O resto de cada diviso ser o nmero na base
desejada, indo do ltimo para o primeiro resto obtido.

Exs.:

1523

16

95

16

15

16

5F316

3359

419

52

64378

55

Exerccios
Efetue as seguintes converses de base:
1D516 = ( )10
1001011012 = ( )10
53418 = ( )10
15510 = ( )2
6310 = ( )8
11910 = ( )16

56

lgebra de Boole
No sculo XIX, o matemtico ingls George Boole
desenvolveu um estudo estabelecendo o conjunto de
regras e estruturas a serem aplicadas a smbolos
lgicos, ficando conhecida como lgebra de Boole
(ou lgebra Booleana)
A motivao por trs deste estudo surgiu dos
problemas constantes nos projetos de circuitos de
chaveamento com rels; o planejamento lgico
reduziria a complexidade e os erros na
implementao
57

lgebra de Boole
Os circuitos eletrnicos modernos mantm uma
estrutura de funcionamento anloga a utilizada com
rels, portanto, as mesmas tcnicas desenvolvidas
para circuitos com rels ainda so utilizadas no
projeto de modernos computadores de alta
velocidade
A lgebra booleana, por meio de suas regras,
proporciona um modo econmico e direto de
descrio do conjunto de circuitos usado nos
computadores

58

lgebra de Boole
As variveis usadas nas equaes booleanas podem
assumir apenas um de dois valores possveis,
representados pelos smbolos 0 e 1, chamados de
estados lgicos
Usualmente utilizamos 1 para representar um
circuito fechado ou no estado ligado ON, e 0 um
circuito aberto ou no estado desligado OFF

59

Operaes no Sistema Binrio


Adio e multiplicao binria: o conjunto de
operaes bsicas de adio e multiplicao no sistema
binrio pode ser representado de forma resumida
pelas seguintes tabelas:
Adio

Multiplicao

10

Leia-se 0 e vai 1 para o dgito de ordem


superior
60

Operaes no Sistema Binrio


Obs. 1: As operaes de adio e multiplicao so
realizadas operando-se as colunas da direita para a
esquerda, da mesma forma que nas operaes decimais.
Obs. 2: Todas as operaes aritmticas podem ser
realizadas atravs da soma:
a multiplicao pode ser feita atravs de sucessivas somas (um nmero

N vezes b igual a soma de N com N b vezes);


a subtrao pode ser feita atravs do mtodo de complemento a base
(que veremos a seguir);
Finalmente, a diviso pode ser feita atravs de sucessivas subtraes.

61

Exemplos de operaes binrias


310 + 510 = 112 + 1012

310 x 510 = 112 x 1012

101
+ 11
1000

101
x 11
101
+ 101
1111

10002 = 810

11112 = 1510

62

Exemplos de operaes binrias


3710 + 3010 = 100101 + 11110

710 x 710 = 111 x 111

1 111000
100101
+ 11110
1000011

111
x
111
111
111
+ 111
110001

26+21+20 = 6710

25+24+20 = 4910

63

Exerccios
Converta para binrio e efetue as operaes a seguir.
O resultado final deve ser representado na mesma
base dos valores originais.
6310 + 3410
3210 x 610
7BA16 + 9C616
348 x 218
738 + 348

64

Operaes Binrias
Subtrao: o mtodo mais simples de subtrao entre dois
valores binrios atravs do complemento a base,
executado pela seguinte sequncia de instrues (ei, um
algoritmo!):
Mantenha o minuendo na sua forma original;
Inverta o subtraendo (todo 1 vira 0 e todo 0 vira 1;
Some o minuendo e o subtraendo;
Some 1;
Ignore o algarismo mais significativo caso ele esteja numa posio
decimal que os operandos no tenham um algarismo significativo.

Obs.: no se esquea de representar os zeros nosignificativos (pois este sero importantes na inverso)!
65

Complemento a 2
Esta forma de representao que vimos chamada
complemento a 2; pode ser usada para outras operaes
particulares, alm da transformao de uma subtrao
em adio.
Em qualquer situao, a converso feita da mesma
forma: invertem-se os bits (0 1 e 1 0) e soma 1.
importante sempre lembrar dos zeros no-significativos
para realizar uma converso, pois zeros esquerda se
tornaro 1s.

66

Exemplo de Subtrao Binria


3710 - 1210 = 100101 - 001100

O minuendo foi mantido!

1001110
100101
+ 110011
1011000
+
1
1011001

A quantidade de casas foi igualada


com zeros esquerda!

O subtraendo foi invertido!


12 = 001100 110011
Soma 1
= 011001 = 24+23+20 = 2510

Este algarismo desprezado!

67

Exerccios
Efetue as seguintes operaes. O resultado final
deve ser representado na mesma base dos valores
originais.
3710 3010
8310 8210
638 348
778 118
BB16 AA16
C4316 19516

68

Diviso de nmeros binrios


Como nas demais operaes aritmticas, a diviso
binria similar diviso decimal, sendo:
0/1=0
1/1=1
Diviso por zero erro

Divises binrias podem ser realizadas pelo mtodo


tradicional (dividendo / divisor = quociente e um
resto) ou atravs de sucessivas subtraes

69

Passos para a diviso binria


A partir da esquerda, avanam-se tantos algarismos
quantos sejam necessrios para obter-se um valor maior
ou igual ao divisor;
Encontrado este valor, registra-se 1 para o quociente;
Subtrai-se do valor obtido no dividendo o valor do divisor;
Ao resultado da subtrao, acrescentam-se mais
algarismos do dividendo (se ainda houver algum que no
fora utilizado) at obter-se um valor maior ou igual ao
divisor.
Se no houverem mais algarismos a serem utilizados e o
valor do dividendo for menor do que o divisor, encerra-se a
operao e temos um resto no-nulo;
70

Passos para a diviso binria


Se os algarismos ainda no utilizados do dividendo
tiverem valor igual a zero, a cada um deles utilizado deve
se acrescentar um zero ao quociente
Repita o processo at que no existam mais algarismos do
dividendo.

Ex.: 1002 / 102


100

10

-10

10

00
71

Exemplo de diviso binria


1810 / 310 100102 / 112
10010
- 11

11
110

011
00

72

Exerccios
Efetue as seguintes operaes. O resultado final
deve ser representado na mesma base dos valores
originais.

12010 / 510
6310 / 810
1458 / 48
B216 / 816

73

Representao de Dados
Antes de prosseguirmos, precisamos entender os seguintes
conceitos:
BIT (BInary digiT): a representao do menor item de dado
possvel;
Byte: um conjunto de bits ( adotado como padro que 1 byte
formado por 8 bits);
Palavra: um conjunto de bytes; um computador com palavra de 32
bits tem 4 bytes por palavra. A maioria das instrues de um
computador opera sobre palavras, por exemplo, cada operao de
um computador de 32 bits opera sobre palavras de 32 bits, deve ter
registradores de 32 bits, instrues para 32 bits, etc.

Esta limitao necessria para que possamos representar


atravs de bits diferentes tipos de dados (nmeros,
instrues, etc.)
74

Representao de Dados
Da forma que vimos at agora todas as representaes
numricas so de valores inteiros e sem um limite
mximo, isto , iramos de 0 a . Devemos estabelecer
um domnio de valores dentro do qual o sistema ir
operar. Ser necessrio estabelecermos uma forma de
representar valores negativos.
Na prtica utilizamos o bit na posio mais significativa
(isto , o bit mais a esquerda) para a representao do
sinal, com a seguinte conveno:
Bit 0 sinal positivo.
Bit 1 sinal negativo.
75

Representao de Dados
Desta forma, uma representao em binrio com n
bits teria disponveis para a representao do
nmero n-1 bits (o bit mais significativo representa o
sinal). Este modelo de representao chamado de
representao em sinal e magnitude.

76

Representao de Dados
Teoria:
-

+
0

Prtica (limitado a n bits):

-(2n-1-1)

+(2n-1-1)
0

77

Representao em Sinal e
Magnitude
A magnitude o valor absoluto de um nmero, que
independe do sinal, representada em binrio.
O sinal representado pelo bit mais significativo,
sendo positivo se representado por 0 e negativo se
representado por 1.
O valor dos bits usados para representar a magnitude
independe do sinal, ou seja, seja o nmero positivo
ou negativo, a representao da magnitude ser
exatamente a mesma, variando somente o bit de
sinal.
78

Representao em Sinal e
Magnitude
Sinal

Ex.:

Magnitude

0110110 = + 5410
1110110 = - 5410
o binrio 110110 corresponde ao valor absoluto 54.

A faixa de representao de um valor binrio em sinal e


magnitude com n bits possui 2n representaes, representando
os valores de - (2n-1-1) (menor valor negativo) a + (2n-1-1) (maior
valor positivo).
Como a representao do zero em sinal e magnitude?
79

Exemplo de Representao de
Dados
Valor decimal

Valor binrio com 8 bits (7 + bit de sinal)

+9

00001001 (bit inicial 0 significa positivo)

-9

10001001 (bit inicial 1 significa negativo)

+127

01111111 (bit inicial 0 significa positivo)

-127

11111111 (bit inicial 1 significa negativo)

Como podemos observar, o maior e menor valores que


podemos representar com 8 bits so, respectivamente,
+127 e -127.
80

Exerccio
Complete o quadro a seguir com os valores pedidos
para uma arquitetura de 32 bits, representados como
uma potncia de base 2, quando conveniente:
32 bits

Sem Sinal

Sinal e Magnitude

Menor Valor
Maior Valor
Quantidade de
valores distintos

81

Aritmtica em Sinal e Magnitude


Soma em sinal e magnitude:
Verificar o sinal das parcelas a serem somadas;
Se forem iguais, repetir o sinal e somar as magnitudes;
Se forem diferentes:
verificar qual parcela tem a maior magnitude;
repetir o sinal da maior magnitude;
subtrair a menor magnitude da maior magnitude.

Os bits referentes ao sinal dos operandos, positivo ou negativo,


no devem ser operados aritmeticamente!

82

Representao de operaes
Lembre-se que as instrues so interpretadas em
linguagem de montagem (que ser estudada com
detalhes mais adiante), utilizando mnemnicos
para representar as operaes, desta forma, apenas
os operandos possuem sinais, por exemplo:
+5 ( 7) SUB (5, -7)
+12 + ( 3) ADD (12, -3)

83

Aritmtica em Sinal e Magnitude


Subtrao em sinal e magnitude:
calculada exatamente como uma soma entre duas
parcelas de sinais diferentes.
importante lembrar que as operaes aritmticas so
realizadas somente com as magnitudes, ento sempre o
menor valor subtrado do maior valor!
Quanto ao sinal, basta fazer uma anlise lgica se o
resultado ser positivo ou negativo, da mesma forma
que feito com operaes decimais.

84

Exemplos de operaes em Sinal e


Magnitude
+5410 + (+4310) (em uma representao com palavras de 8 bits):
0110110 + 0101011
1 1 1 1 100

0110110
+ 0101011
1100001

26 + 25 + 20 = + 9710

+5410 (+4310) (em uma representao com palavras de 8 bits):


1 1 1 11
0110110
0110110
A operao feita sem o
+ 1010100
- 0101011
bit de sinal!
10001010
+
1
10001011
00001011 = + 1110

0001011 = 23+21+20 = 1110


85

Exemplos de operaes em Sinal e


Magnitude
+4310 (5410) (em uma representao com palavras de 8 bits):
1 1 1 1 11
0110110
0101011
A operao feita sem o
+ 1010100
- 0110110
bit de sinal!
10001010
+
1
10001011
0001011 = 23+21+20 = 1110
10001011 = - 1110

Por que os operandos foram invertidos? Lembre-se que as operaes


so feitas somente com a magnitude, que so valores positivos,
portanto, o menor valor deve ser subtrado do maior valor.

86

Exemplo de Multiplicao
Multiplicao:
Na multiplicao so utilizadas as regras j conhecidas
para a magnitude, e o sinal manipulado da mesma
forma que na aritmtica tradicional.
+1910 x (-1910) = 010011 x 110011 = -36110
10011
x 10011
10011
10011
+ 10011
101101001

Operamos sem o bit de sinal


(o mais significativo)

28+26+25+23+20 =
256 + 64 + 32 + 8 + 1 = 36110
87

Exerccios
Efetue as seguintes operaes em sinal e
magnitude, sem restries quanto a quantidade de
bits. . O resultado final deve ser representado na
mesma base dos valores originais.
4710 (+5210)
6910 (+4010)
3210 x (+1410)
548 x (-58)
A216 x (-1316)

88

Limites de memria
Em sistemas reais, tanto os valores operados quanto os
resultados produzidos podem exceder os limites de
armazenamentos impostos pela arquitetura, ou seja, o
nmero de bits que compem a palavra (principalmente em
multiplicaes).
Para contornar esta limitao, no caso de o nmero de bits da
soluo exceder o limite da palavra, podem ser utilizadas duas
palavras para armazenar o resultado
Uma palavra de n bits contm os n-1 bits do valor, precedidos
pelo bit de sinal. A outra palavra conter os bits mais
significativos, 0s complementares, se necessrios, e o sinal
do resultado.
89

Exemplo de uso de mais de uma


palavra para expressar um valor
+1910 x (-1910) = 010011 x 110011
10011
x 10011
10011
10011
+ 10011
101101001

(Agora limitado a 6 bits)


Operamos sem o bit de sinal
(o mais significativo)

O bit de sinal ser negativo

1 0 1 0 1 1

1 0 1 0 0 1

bits mais significativos

bits menos significativos

= 1101101001 = -361

90

Limites de memria
No caso de no ser possvel armazenar um valor mesmo
usando o limite de palavras do sistema para a representao
de um valor, ocorre um erro chamado OVERFLOW, que pode
ser traduzido livremente como estouro de memria. Isto
significa que tentamos armazenar mais bits do que uma
capacidade pr-estabelecida para uma varivel.
Exs.:
Tipo

Tamanho em
Bytes

Faixa Mnima

unsigned char

0 a 255

signed char

-127 a 127

int

-2.147.483.648 a 2.147.483.647

unsigned int

0 a 4.294.967.295

Você também pode gostar