Você está na página 1de 91

Fundamentos de Arquitetura 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 baseiamse no processamento de informaes, que so realizados atravs de operaes bsicas, extremamente simples, que sero estudadas no decorrer 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 extremamente simples, 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 Fundamentos de Arquitetura de Computadores Raul Fernandes Weber; ed. Sagra Luzzatto Arquitetura de Computadores Pessoais Raul Fernandes Weber; ed. Sagra Luzzatto

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, pelo menos, dos seguintes componentes:
Um mdulo que realize as operaes necessrias, 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.
7

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 Interface abstrata permite que vrias implementaes executem o mesmo software

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 informtica 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 encaixam, 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
Rn ... R1 R0

Unidade Lgica e Aritmtica

Barramento Interno

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 IDIAS!!! Devemos aprender a pensar, a criar recursos para atender nossas necessidades e contribuir, melhorando o que j existe
12

Histrico
1642 1945 1955 1965 1980 1990

Gerao 0 Mecnicos

1 Gerao Vlvulas 2 Gerao Transistores 3 Gerao Circuitos Integrados

4 Gerao VLSIs

5 Gerao ULSIs

13

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

Leibniz (~1672) Babbage (~1822)

multiplicao e diviso Mquina de Diferenas

Evoluo da mquina de Pascal, com pequenas melhorias e novos recursos, sendo mais rpida clculo de tabelas de nmeros teis navegao naval 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

14

Exemplo de uma mquina de clculo

15

Mquina de Clculo de Pascal

16

Mquina de Diferenas, de Charles Babbage (1822)

17

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

18

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.
19

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
20

ENIAC

21

1 Gerao - Vlvulas
EDVAC (Electronic Discrete Variable Automatic Computer) Mquina IAS (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)


22

Vlvula

A funo de uma vlvula eletrnica regular o fluxo de corrente eltrica que passa por uma parte de um circuito
23

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 transistorizado, apenas experimental.

PDP-1 (DEC - Digital Equipment Corporation)


marco inicial da indstria de minicomputadores.

IBM 7090 e 7094 - srie transistorizada

24

Comparao entre vlvula e transistores

25

3 Gerao - Circuitos Integrados


LSI (Large Scale Integration)
dezenas de transistores colocados em uma nica pastilha; 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.

26

3 Gerao - Circuitos Integrados


Lmina

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

Pastilha (chip)

Porta Lgica Pastilha empacotada

27

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.
28

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.

29

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; Laptops; Projeto genoma; World Wide Web; Computao distribuda em escala mundial.
30

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, cache L1,
cache L2, etc.).

Paralelismo de execuo de instrues. Novas tecnologias de processamento (processadores multicore, etc.).

31

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 800 P e rf o r m a n c e 700 600 500 400 300 D E C A lp h a 5 / 3 0 0 200 100 S U N - 4 / M IP S 260 M /1 2 0 1988 M IP S M 2000 IB M R S 6000 D E C A lp h a 4 /2 6 6 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 Year 199 3 19 94 1995 19 96 1 99 7

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

0 1987

1 9 89

1 99 0

32

Aumento no nmero de transistores das UCPs

33

Histrico do Desempenho das Estaes de Trabalho

1965 IBM 360/50 0.15 MIPS 64 KB $1M $ 6.6M por MIPS

1977 DEC VAX 11/780 1 MIPS 1 MB $200 K $ 200K por MIPS

1999 IBM PC 300 750 MIPS 64 MB $2060 $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 MPY DIV LOAD STOR Soma Subtrao Multiplicao Diviso Carregar dados da memria 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; }

Montador

Compilador C
swap:

Programa 1100011001010101 em linguagem 0000000111110101 de mquina 0011001100110011


1100011110001110 1110001111000000 1010101010101010

0001011101110110

Programa muli $2,$5,4 em linguagem add $2,$4,$2 de montagem (MIPS) lw $15,0($2)


lw sw sw jr $16, 4($2) $16,0($2) $15,4($2) $31

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 1 10 100 1000 10000 100000 1000000 10000000 100000000 1000000000 10000000000 Potncia 20 21 22 23 24 25 26 27 28 29 210 Repr. Decimal 1 2 4 8 16 32 64 128 256 512 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 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 Binrio 0 1 10 11 100 101 110 111 1000 1001 1010 1011 1100 1101 1110 1111 Hexadecimal 0 1 2 3 4 5 6 7 8 9 A B C D E F Octal 0 1 2 3 4 5 6 7 10 11 12 13 14 15 16 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 7 110 6 101 5 = 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 F 5 = 3F516

51

Converses entre Bases


Para as converses octal-binrio e hexadecimalbinrio 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!
316 = 112 F16 = 11112 516 = 1012

Ex: 3F516

0011111101012 e no 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 3 5F316 16 95 15 16 5 5 16 0 3359 7 8 419 3 64378 8 52 4 8 6 6 8 0

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 + 0 1 0 0 1 1 1
10

Multiplicao x 0 1 0 1 0 0 0 1

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


101 + 11 1000

310 + 510 = 112 + 1012

10002 = 810

310 x 510 = 112 x 1012

101 x 11 101 + 101 1111

11112 = 1510

62

Exemplos de operaes binrias


3710 + 3010 = 100101 + 11110 1 1 1 1000 100101 + 11110 1000011

26+21+20 = 6710

710 x 710 = 111 x 111

111 x 111 111 111 + 111 110001

25+24+20 = 4910

63

Exerccios
Converta para binrio e efetue as seguintes operaes:
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 nosignificativos para realizar uma converso, pois zeros esquerda se tornaro 1s.
66

Exemplo de Subtrao Binria


3710 - 1210 = 100101 - 001100 A quantidade de casas foi igualada com zeros esquerda!
1 1 10

O minuendo foi mantido!

100101 + 110011 1011000 + 1 1011001

O subtraendo foi invertido! 12 = 001100 110011 Soma 1 = 011001 = 24+23+20 = 2510

Este algarismo desprezado!

67

Exerccios
Efetue as seguintes operaes:
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; 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.
70

Passos para a diviso binria


Repita o processo at que no existam mais algarismos do dividendo. Ex.: 1002 / 102
100 -10 00 10 10

71

Exemplo de diviso binria


1810 / 310 100102 / 112
10010 - 11 011 00 11 110

72

Exerccios
Efetue as seguintes operaes:

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) 0

+(2n-1-1)

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 Magnitude

Ex.:

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 +9 -9 +127 -127 Valor binrio com 8 bits (7 + bit de sinal) 00001001 (bit inicial 0 significa positivo) 10001001 (bit inicial 1 significa negativo) 01111111 (bit inicial 0 significa positivo) 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 Menor Valor Maior Valor Quantidade de valores distintos
81

Sem Sinal

Sinal e Magnitude

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 + 1110110
1 1 1 1 100

0110110 0101011 1100001

26 + 25 + 20 = + 9710

+5410 (+4310) (em uma representao com palavras de 8 bits): 11 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 = 10001011 = - 1110

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:
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
bits mais significativos

1 0 1 0 0 1

= 1101101001 = -361

bits menos significativos


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 prestabelecida para uma varivel. Exs.:
Tipo unsigned char signed char int unsigned int Tamanho em Bytes 1 1 4 4 Faixa Mnima 0 a 255 -127 a 127 -2.147.483.648 a 2.147.483.647 0 a 4.294.967.295