Sie sind auf Seite 1von 55

MC542

Organizao de Computadores
Teoria e Prtica

2007 - 2011 Prof. Paulo Cesar Centoducatte ducatte@ic.unicamp.br www.ic.unicamp.br/~ducatte


MC542 1.1

MC542
Organizao de Computadores
Teoria e Prtica

Referncias:
David M. Harris & Sarah L. Harris, Digital Design and Computer Architecture - DDCA Stephen Brown & Zvonko Vranesic, Fundamentals of Digital Logic (with VHDL design) FDL David A. Patterson & John L. Hennessy, Computer Organization and Design (the hardware/software interface) - COD
MC542 1.2

MC542 Introduo

Abstrao, Sistemas Numricos

DDCA - (Captulo 1) FDL - (Captulo 5)

MC542 1.3

Abstrao, Sistemas Numricos, Tecnologia Sumrio

Objetivos Abstrao
Abstrao Digital

Binrio
Representao de Nmeros (Reviso)
Posicional Inteiros sem Sinal
Decimal Binrio Hexadecimal e Octal Converso entre bases Valores e Intervalos

Bits, Bytes, Nibbles Soma de Nmeros Inteiros e Overrflow

MC542 1.4

Abstrao, Sistemas Numricos, Tecnologia Sumrio Representao de Nmeros (cont.)


Representao de Nmeros Negativos
Sinal e Magnitude Complemento de 1 Complemento de 2

Adio e Subtrao
Sinal e Magnitude Complemento de 1 Complemnto de 2 Overflow

Representaes de Nmeros Reais


Fixo Ponto-Flutuante

BCD
MC542 1.5

Objetivos
Consideraes:
Familiaridade com eletricidade bsica Experincia com programao

Objetivos do Curso Aprender os principios de projetos digitais Aprender como um computador funciona Projetar um microprocessador

MC542 1.6

Abstrao
Application Software Operating Systems programs

Um sistema pode ser visto com nveis de detalhes diferentes. Abstrao usada para esconder detalhes quando eles no so importantes.

device drivers

Architecture focus of this course

instructions registers datapaths controllers adders memories AND gates NOT gates amplifiers filters transistors diodes

Microarchitecture

Logic

Digital Circuits Analog Circuits

Devices

Physics

electrons Nveis de abstrao para um sistema computacional

MC542 1.7

Abstrao Digital
A maioria das variveis fsicas so continuas, exemplo:
Tenso em um fio Freqncia Posio de um objeto em um plano

Usando abstrao digital, no se considera todos os valores possveis e sim somente um conjunto discreto de valores

MC542 1.8

Analytical Engine
Projetado por Charles Babbage (1834 1871) Considerado como o primeiro computador digital Representava valores discretos (0-9)

MC542 1.9

Binrio
Considera somente dois valores discretos:
1s e 0s 1: TRUE, HIGH 0: FALSE, LOW

1 e 0 podem ser representados por um nvel de voltagem especfica ou outra grandeza fsica Circuitos digitais, em geral usam um nvel de voltagem especfico para representar o 1 e o 0 Bit: Binary digit
MC542 1.10

Representao de Nmeros Posicional Decimal Inteiros sem Sinal


D = dn-1 dn-2 d1 d0 V(D) = dn-1x10n-1 + dn-2x10n-2 + + d1x101 + d0x100

1's

10's

100's

1000's

5 3 7 410 = 5 10 3 + 3 10 2 + 7 10 1 + 4 10 0
milhares centenas dezenas unidades
MC542 1.11

Representao de Nmeros Posicional Binrio Inteiros sem sinal


B = bn-1 bn-2 b1 b0 V(B) = bn-1x2n-1 + bn-2xbn-2 + + b1x21 + b0x20 n-1 = bix2i i=0

1 1 0 12= 1 23 + 1 22 + 0 21 + 1 20 = 1310

1's 2's 4's 8's


MC542 1.12

Representao Posicional Converso entre Decimal e Binrio


V(B) = bn-1x2n-1 + bn-2xbn-2 + + b1x21 + b0x20 V(B) = bn-1x2n-1 + bn-2xbn-2 + + b1x21 + b0

V(B) = bn-1x2n-2 + bn-2xbn-3 + + b1 + b0 2 2 Converso de Decimal para Binrio: Diviso sucessiva por 2
MC542 1.13

Exemplo

MC542 1.14

Exerccios
Converter 101012 para decimal

Converter 4710 para binrio

MC542 1.15

Valores e Intervalos
Considere um nmero decimal com N-dgitos
Representa 10N possveis valores O Intervalo : [0, 10N - 1] Exemplo, Um nmero decimal 3-dgitos representa 103 = 1000 valores, com intervalo de [0, 999]

Considere um nmero binrio N-bit


Representa 2N possveis valores O Intervalo : [0, 2N - 1] Exemplo, um nmero binrio 3-bit 23 = 8 valores, com intervalo de [0, 7] (i.e., 0002 a 1112)

MC542 1.16

Nmeros Hexadecimal
Base 16

Dgito Hexa Equivalente Decimal 0 1 2 3 4 5 6 7 8 9 A B C D E F 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15

Equivalente Binrio 0000 0001 0010 0011 0100 0101 0110 0111 1000 1001 1010 1011 1100 1101 1110 1111
MC542 1.17

Nmeros Octal
Base 8

MC542 1.18

Converso Hexadecimal para Binrio


Converter 4AF16 (0x4AF) para binrio

Converter 0x4AF para decimal

MC542 1.19

Converso Hexadecimal para Binrio


Converter 4AF16 (0x4AF) para binrio
0100101011112

Converter 0x4AF para decimal


0100101011112 = 1 + 2 + 4 + 8 + 32 + 128 + 1024 = 119910 = (15 160) + (10 161) + (4 162) = 119910
MC542 1.20

0x4AF

Bits, Bytes, Nibbles


Bits

10010110
most significant bit
byte

least significant bit

Bytes & Nibbles

10010110
nibble

Bytes

CEBF9AD7
most significant byte least significant byte
MC542 1.21

Potncias de 2
210 = 1 kilo 1000 (1024)

220 = 1 mega 1 milho(1.048.576)

230 = 1 giga 1 bilho (1.073.741.824)

MC542 1.22

Estimando Potncia de 2
Qual o valor de 222? 22 220 = 4 Mega Quantos valores uma vriavel de 32-bit pode representar? 22 230 = 4 Giga

MC542 1.23

Soma
Decimal

11 3734 + 5168 8902


11 1011 + 0011 1110

carries

Binria

carries

MC542 1.24

Soma Binria: Exemplos


Some os seguintes nmeros:

1001 + 0101

1011 + 0110

MC542 1.25

Overflow
Sistemas Digitais operam com um nmero fixo de bits A Adio tem overflow quando o resultado no pode ser representado com o nmero de bits disponveis Exemplo: somar 13 e 5 usando nmeros de 4-bit

11 1 1101 + 0101 10010


MC542 1.26

Representao de Nmeros Negativos


Sinal e Magnitude
bn1 b1 b0

Nmero sem Sinal


Magnitude MSB

bn1 bn2

b1

b0

Nmero com Sinal


Magnitude MSB
MC542 1.27

Sign 0 denotes + 1 denotes

Representao de Nmeros Negativos


Sinal e Magnitude
1 bit de signal, N-1 bits de magnitude O bit de sinal o mais significativo (mais a esquerda)
Nmero negativo: 1 Nmero possitivo: 0

Exemplo, representao de 5 com 4-bit:

- 5 = 11012 +5 = 01012
Intervalo de um nmero N-bit sinal/magnitude:

[-(2N-1-1), 2N-1-1]
MC542 1.28

Representao de Nmeros Negativos


Complemento de 1
Em complemento de Um o nmero negativo K, com n-bits, obtido subtrando seu positivo P de 2n - 1

K = (2n 1) - P Exemplo: se n = 4 ento: K = (24 1) P K = (16 1) P K = (1111)2 - P

K = -7 -> P = 7 7 = (0111)2 -7 = (1111)2 - (0111)2 -7 = (1000)2

MC542 1.29

Representao de Nmeros Negativos


Complemento de 2
Em complemento de Dois o nmero negativo K, com n-bits, obtido subtrando seu positivo P de 2n

K = 2n - P Exemplo: se n = 4 ento: K = 24 P K = 16 P K = (10000)2 - P

K = (2n - 1) + 1 - P K = (2n - 1) P + 1 K = -7 -> P = 7 7 = (0111)2 -7 = (10000)2 - (0111)2 -7 = (1001)2

MC542 1.30

Representao de Nmeros Negativos


Complemento de 2
Regra Prtica

K = 2n - P

K = (2n - 1) + 1 - P K = (2n - 1) P + 1

K = 1111 (pn-1 p0) + 1 K = (pn-1 p0) + 1


MC542 1.31

Representao de Nmeros Negativos


Complemento de 2
O mesmo que sem sinal porm o most significant bit (msb) tem valor -2N-1 Maior nmero positivo de 4-bit: 01112 (710) Maior nmero negativo de 4-bit: 10002 (-23 = -810) O most significant bit tambm indica o sinal (1 = negativo, 0 = positivo) Intervalo de um nmero de N-bit:

[-2N-1, 2N-1-1]
MC542 1.32

Representao de Nmeros Negativos

MC542 1.33

Adio e Subtrao Sinal e Magnitude

Exemplo: -5 + 5:
1101 + 0101 10010

Duas representaes para o 0 ( 0):


1000 0000
MC542 1.34

Adio e Subtrao Complemento de 1


(+5) + (+2) (+7) 0101 +0010 0111 ( 5 ) + (+2) (- 3 ) 1010 +0010 1100

(+5) + ( 2) (+3)

0101 +1101 10010 1 0011

(5 ) + (2 ) (7 )

1010 +1101 1 0111 1 1000

MC542 1.35

Adio e Subtrao Complemento de 2

( + 5) + ( + 2) ( + 7)

0101 + 0010 0111

(5) + (+ 2) (3)

1011 + 0010 1101

( + 5) + (2) ( + 3)

0101 + 1110 10011

(5) + (2) (7)

1011 + 1110 11 0 0 1

ignore

ignore

MC542 1.36

Subtrao em Complemento de 2
( + 5) ( + 2) ( + 3) 0101 0010 0101 + 1110 10011

ignore (5) ( + 2) (7) 1011 0010 1011 + 1110 11001

ignore ( + 5) (2) ( + 7) (5) (2) (3) 1011 1110 0101 1110 0101 + 0010 0111 1011 + 0010 1101
MC542 1.37

Complemento de 2

1111 1110 1101 1100 1011 1010 1001 2 3 4 5 6 1

0000 0 +1

0001 0010 +2 +3 +4 +5 +6 0101 0110 0011 0100

7 8 +7 1000 0111

MC542 1.38

Overflow em Complemento de 2
Quando h overflow? Como detectar se houve overflow?
( + 7) + ( + 2) ( + 9) 0111 + 0010 1001 c4 = 0 c3 = 1 (7) + ( + 2) (5) 1001 + 0010 1011 c4 = 0 c3 = 0

( + 7) + ( 2) ( + 5)

0111 + 1110 10101 c4 = 1 c3 = 1

(7) + (2) (9)

1001 + 1110 10 1 1 1 c4 = 1 c3 = 0
MC542 1.39

Extenso de N para M bits


Um valor pode ter sua representao extendida de N bits para M bits (com M > N) usando:
Sign-extension Zero-extension

MC542 1.40

Sign-extension
O bit de sinal copiado para os bits mais significativos. O valor do nmero mantido o mesmo. Exemplo 1:
Representao de 3 com 4-bit = 0011 Representao sign-extended de 3 com 8-bit: 00000011

Exemplo 2:
Representao de -5 com 4-bit = 1011 Representao sign-extended de -5 com 8-bit: 11111011

MC542 1.41

Zero-Extension
Zeros so copiados nos bits mais significativos. O valor do nmero pode ser alterado. Exemplo 1:
Valor em 4-bit = 0011 Valor zero-extended com 8-bit: 00000011

Exemplo 2:
Valor em 4-bit = 1011 Valor zero-extended com 8-bit: 00001011

MC542 1.42

Comparao
Number System
Unsigned Sign/Magnitude Twos Complement

Range
[0, 2N-1] [-(2N-1-1), 2N-1-1] [-2N-1, 2N-1-1]

Representao em 4-bit:
-8 -7 -6 -5 -4 -3 -2 -1 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15

Unsigned

0000 0001 0010 0011 0100 0101 0110 0111 1000 1001 1010 1011 1100 1101 1110 1111

1000 1001 1010 1011 1100 1101 1110 1111 0000 0001 0010 0011 0100 0101 0110 0111

Two's Complement

1111 1110 1101 1100 1011 1010 1001

0000 0001 0010 0011 0100 0101 0110 0111 1000

Sign/Magnitude

MC542 1.43

Representaes de Nmeros Reais


Ponto Fixo
Exemplo: 6.75 com 4 bits para inteiros e 4 bits para a frao 6 0.75 0110.1100 01101100 22 + 21 + 2-1 + 2-2 = 6.75

OBS.: O ponto binrio no faz parte da notao e implcito


MC542 1.44

Representaes de Nmeros Reais


Represente -6.510 usando uma representao binria de 8 bits (4 inteiro e 4 frao). 6.5 Sinal/magnitude: 11101000 Complemento de 2: Inverte os bits: Soma 1 ao lsb: 0110.1000

10010111 + 1 10011000
MC542 1.45

Representaes de Nmeros Reais


Ponto Flutuante (Notao Cientfica): Mantissa x 10E
Mantissa = xxx.yyyyyy

Se Mantissa possui somente 1 dgito a esquerda do ponto decimal -> forma padronizada e se diferente de zero -> normalizado Padro IEEE-754 Normalizado Bit Escondido (-1)s x (1 + Frao) x 2E
MC542 1.46

IEEE-754 de Preciso Simples

32 bits S E M 23 bits of mantissa

Sign 8-bit 0 denotes + 1 denotes excess-127 exponent

MC542 1.47

IEEE-754 de Preciso Dupla

64 bits S Sign E M 52 bits of mantissa

11-bit excess-1023 exponent

MC542 1.48

IEEE-754 Valores Representados

Exponent e = 0 = Emim - 1 e = 0 = Emim - 1 Emim e Emax e = Emax + 1 e = Emax + 1

Fraction f=0 f0

Represents 0 0.f x 2mim 1.f x 2e


E

f=0 f0

NaN

MC542 1.49

IEEE-754: Exemplo

-0,7510 = -0,112 Normalizando


31 30 23 22

1,1 x 2-1
0

1 01111110 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

MC542 1.50

IEEE-754: Exemplo
Qual o decimal correspondente ?

31 30

23 22

1 10000001

1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

N= - ( 1+0.25) x 2(129-127) = -1,25 x 4 = -5,0

MC542 1.51

IEEE-754: Exemplo
Represente o valor 22810 usando a representao um floating point de 32-bit 22810 = 111001002 = 1.11001 27 Biased exponent = bias + 7 127 + 7 = 134 = 0x100001102

1 bit 0 Sign

8 bits 10000110 Biased Exponent

23 bits 110 0100 0000 0000 0000 0000 Fraction

MC542 1.52

BCD Binary-Coded-Decimal

MC542 1.53

Adio Usando BCD


X
+ Y Z carry 0111 + 0101 1100 + 0110 10010 S=2 X + Y Z carry 1000 + 1001 10001 + 0110 10111 S=7 8 + 9 17 7 + 5 12

MC542 1.54

No mundo h 10 tipos de pessoas: as que sabem contar em binrio e as que no sabem

MC542 1.55