Você está na página 1de 111

AOC - UD I - ISL (Introduo aos Sistemas Lgicos)

Referncias:
(OECTB4ed/5ed): Organizao Estruturada de Computadores, A.S. Tanenbaum (4 e 5. Ed): cap 3, apndices A e B Introduo Organizao de Computadores, M. Monteiro: cap 3, 4 e apndice A. Arquitetura e Organizao Computadores, W. Stallings (5. Ed.): cap 8, apndices A e 8A.

AOC UD I - Parte I:
Sistemas de numerao e aritmtica binria Referncias:
Mrio Monteiro (IOC) : cap 3, 4 e apndice A. William Stallings (AOC) : cap 8, apndices A e 8A. A.S. Tanenbaum (OEC) : cap 3, apndices A e B

Bits, Bytes e a Memria


Um Byte composto de 8 Bits. Um Bit a menor unidade de informao e corresponde a 0 ou 1. Dentro de cada clula (posio) de memria, podemos colocar geralmente um byte. Cada posio de memria endereada por um ou mais bytes.

Memria
o componente de um computador que armazena dados e instrues durante o processamento. Ela composta de clulas (posies) que so localizadas atravs de um nmero (endereo) nico.
0 1 2 in stru o ou d a d o

e n d e r e o s 2 -1
16

c lu la = 8 b its

Sistemas de numerao
Um SISTEMA NUMRICO o conjunto de smbolos, palavras e regras que permitem escrever e representar todos os nmeros. NUMERAL um smbolo representar um nmero. designado para

NMERO um conceito abstrato que representa uma certa quantidade, ou seja, a idia que um grupo de smbolos representa.

Bases numricas:
a quantidade de smbolos (numerais) usados para representar os nmeros em um sistema numrico. Exemplos: Base 2 (binria) : 2 smbolos (0 e 1) Base 8 (octal) : 8 smbolos (0 a 7) Base 10 (decimal) : 10 smbolos (0 a 9) Base 16 (hexadecimal) : 16 smbolos (0 a 9, A a F)

Tabela de converso
DECIMAL 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 OCTAL 0 1 2 3 4 5 6 7 10 11 12 13 14 15 16 17 HEXADECIMAL 0 1 2 3 4 5 6 7 8 9 A B C D E F BINRIO 0000 0001 0010 0011 0100 0101 0110 0111 1000 1001 1010 1011 1100 1101 1110 1111

Notao Posicional
Os algarismos componentes de um nmero assumem valores diferentes, dependendo de sua posio relativa no nmero (N) :

Nb = (dn-1 dn-2 dn-3 ....d1 d0)b


n indica o nmero de dgitos d indica cada algarismo do nmero n-1, n-2, 1, 0 so ndices que indicam a posio de cada algarismo b indica a base do sistema de numerao

Posies
As posies so numeradas da direita para a esquerda iniciando-se em zero. Exemplo: 3 2 10 posies

N10 = 1 9 6 810 ( nmero na base 10)

Valor da posio
Corresponde ao valor associado ao smbolo (alga-rismo ou dgito) da posio considerada. O valor do i-simo digito, d, calculado por: d X basei , ou seja, este valor calculado multiplicando-se o valor do smbolo pelo valor da base elevada posio. Exemplo: Para N = 1 9 6 810, o algarismo 9 est na posio 2, deste modo, o valor desta posio : 9 X 102 = 9 X 100 = 900

Valor numrico
Corresponde ao somatrio (soma) dos valores de todas as posies que compem um determinado nmero: N = dn-1x bn-1+ dn-2xbn-2 + ... + d0xb0 Exemplo: N = 1 9 6 810 196810 = 1X103 + 9X102 + 6X101 + 8X100 = 1X1000 + 9X100 + 6X10 + 8x1 = 1000 + 900 + 60 + 8

Converso para a base decimal


A converso de qualquer base para a base decimal feita calculando-se o valor numrico na base decimal. Exemplos: a) Binrio Decimal 3 2 1 0 (posies) 1 0 1 02 = 1 X 23 + 0 X 22 + 1 X 21 + 0 X 20 = 1X8+0X4+1X2+0X1 = 8 + 0 + 2 + 0 = 1010

Converso octal decimal


b) Octal Decimal 2 1 0 (posies) 3 0 2 8 = 3 X 82 + 0 X 8 1 + 2 X 8 0 = 3 X 64 + 0 X 8 + 2 X 1 = 192 + 0 + 2 = 19410

Converso hexadecimal decimal


c) Hexadecimal Decimal 1 0 (posies) 3 516 = 3 X 161 + 5 X 160 = 3 X 16 + 5 X 1 = 48 + 5 = 5310

Base decimal Outra base


A converso da base decimal para qualquer outra base utiliza o mtodo das divises sucessivas. Para converter um nmero da base decimal para uma base b basta divid-lo sucessivamente por b at chegar ao quociente zero. O nmero representado na base b ser formado pelos restos das divises sucessivas, lidos de cima para baixo.

Decimal Binrio (exemplo)


19 | 2 1 9|2 1 4|2 0 2|2 0 1|2 1 0 Os restos so 1, 0, 0, 1 e 1, portanto:

1910 = 100112

Decimal Octal (exemplo)


157 | 8 5 19 | 8 3 2|8 2 0 Os restos so 2, 3 e 5, portanto:

15710 = 2358

Decimal Hexadecimal (exemplo)


157 | 16 13 9 | 16 9 0 Os restos so 13 (D em hexadecimal ) e 9, portanto:

15710 = 9D16

Converso entre Bases Potncia de 2


Entre bases 2 e 8: agrupamento de 3 em 3 bits Obs: 8 = 23 Entre bases 2 e 16: agrupamento de 4 em 4 bits Obs: 16 = 24 Entre bases 8 e 16: usada a base 2 como intermediria Obs: o a agrupamento de bits sempre da direita para a esquerda.

Potncias de 2
20 = 21 = 22 = 23 = 24 = 25 = 26 = 27 = 28 = 1 29 = 512 2 210 = 1024 (1Ki) 4 211 = 2048 (2ki) 8 212 = 4096 (4Ki) 16 213 = 8192 (8Ki) 32 214 = 16384 (16ki) 64 215 = 32768 (32Ki) 128 216 = 65536 (64Ki) 256 217 = 131072 (128Ki) 218 = 262144 (256Ki) 219 = 524288 (512Ki) 220 = 1024K = 1Mi 230 = 1024M = 1Gi 240 = 1024G = 1Ti 250 = 1024T = 1Pi 260 = 1024P = 1Ei 270 = 1024E = 1Zi 280 = 1024Z = 1Yi

Potncias de 2
20 = 21 = 22 = 23 = 24 = 25 = 26 = 27 = 28 = 1 29 = 512 2 210 = 1024 (1K) 4 211 = 2048 (2k) 8 212 = 4096 (4K) 16 213 = 8192 (8K) 32 214 = 16384 (16k) 64 215 = 32768 (32K) 128 216 = 65536 (64K) 256 217 = 131072 (128K) 218 = 262144 (256K) 219 = 524288 (512K) 220 = 1024K = 1M 230 = 1024M = 1G 240 = 1024G = 1T 250 = 1024T = 1P 260 = 1024P = 1E 270 = 1024E = 1Z 280 = 1024Z = 1Y

Quantificao de Memria
Unidade Sigla Quantidade
(bytes)

1 Kilobyte 1 KB = 1.024 1.024 1 Megabyte 1 MB = 1.024 1.048.576 1 Gigabyte 1 GB = 1.024 1.073.741.824 1 Terabyte 1 TB = 1.024 1.099.511.627.776
4 3 2

Converso Base 2 8 (exemplo)


10000012 = X8 1 000 001 base 2 1 0 1 base 8 X8 = 1018

Converso Base 2 16 (exemplo)


10000012 = Y16 100 0001 base 2 4 1 base 16 Y16 = 4116

Aritmtica binria (adio)


semelhante adiao (soma) em decimal, levando-se em conta que h apenas dois algarismos disponveis: 0 e 1. 0+0=0 0+1=1 1+0=1 1 + 1 = 0, com vai 1.

Adio binria (exemplo)


1 1111 (vai um) 101101 101011 ---------1011000

Converso entre comprimentos de palavra diferentes


Nmeros positivos so completados com zeros esquerda (extenso de sinal) : +18 = 00010010 +18 = 00000000 00010010 Nmeros negativos so completados com unsos esquerda (extenso de sinal) : -18 = 10010010 -18 = 11111111 10010010

Aritmtica binria (subtrao)


semelhante a subtrao em decimal. No caso de emprstimo deve-se utilizar o valor da base (2).

Exemplo: 2 002 101101 - 100111 ---------000110

Aritmtica binria (mult/div)


A multiplicao de nmeros binrios semelhante multiplicao em decimal (somas sucessivas). A diviso de nmeros binrios semelhante diviso decimal. Considerando que: 0/1 = 0 e 1/1 = 1 e que a diviso por zero acarreta erro

Multiplicao binria (exemplo)


1011 X 101 -----1011 0000 1011 ------------110111

Diviso binria (exemplo)


10010 |11 - 11 110 ----0011 11 --000

Converso de Nmeros Fracionrios


semelhante aos nmeros inteiros, porm com expoentes negativos: N = d-1Xbr-1 + d-2Xbr-2 + ... + d-mXbr-m onde m a quantidade de algarismos fracionrios. Exemplo: Converter o nmero 0,726562510 oara a base 2.

Converso de Nmeros Fracionrios


-i Valor a ser multiplicado Resultado Parte Inteira = d-i Parte Fracionria por Br = 2 1 0,7265625 1,453125 1 0,453125 2 0,453125 0,90625 0 0,90625 3 0,90625 1,8125 1 0,8125 4 0,8125 1,625 1 0,625 5 0,625 1,25 1 0,25 6 0,25 0,50 0 0,50 7 0,50 1,00 1 0,00

lgebra Booleana
A lgebra de Chaveamento (Switching lgebra) um ramo da lgebra Booleana (George Boole 1815-1864) que utilizada para descrever, projetar e analisar os sistemas digitais (lgicos) de um computador. As variveis na lgebra Booleana, Xi, assumem apenas dois valores: 0 e 1. Xi {0,1}

Operaes lgicas bsicas

OU (OR) X = A + B (A|B bit a bit C/C++) AND (E) X= A . B = AB (A&B bit a bit C/C++) NO (NOT) X = A = ~A (~A bit a bit C/C++)

Portas Lgicas
Uma porta lgica um elemento de hardware que recebe um ou mais sinais de entrada e produz um sinal de sada. Tabela Verdade: forma tabular de representar os possveis valores de sada gerados a partir das possveis combinaes de valores de entrada.

Portas Lgicas Bsicas


AND OR NOT (inversor) NAND (AND seguido de NOT) NOR (OR seguido de NOT) XOR (eXclusive OR)

Circuitos Digitais
Em um computador digital, as informaes so representadas pelo bits 0 (p. ex. : 0V a 1V) e 1 (p. ex.: 2V a 4V). Circuitos digitais: circuitos eletrnicos que armazenam os sinais binrios e realizam certos tipos de operaes com eles. Os circuitos digitais so compostos de pequenos elementos (portas lgicas) capazes de manipular apenas grandezas binrias.

Materiais e Componentes Eletrnicos Condutores:


ferro(Fe), cobre(Cu), prata(Ag), ouro(Au), etc.

Isolantes:
vidros, borrachas, plsticos, etc.

Semicondutores:
silcio (Si), germnio(Ge), etc.

Transistores

Substituiu as vlvulas Menor Mais barato Menos dissipao de calor Dispositivo de estado slido Feito de Silcio (Terra e areia) Inventado 1947 pelo Sino Labs William Shockley et al.

Transistor 1

Transistor - 2

Transistor - 3

Transistor - 4

clula de memria: Flash NAND

Portas Lgicas (OECTB5ed)

(a) Inversor com transistor (b) Porta NAND (c) Porta NOR.

Portas (operadores) lgicas e as respectivas tabela(s) verdade (OECTB5ed)

Circuitos integrados

Pastilha (chip) SSI 4 x NAND

Classificao de pastilhas (chips) quanto integrao


Integrao: quantidade de portas lgicas SSI (Small Scale Integration) - 1 a 10 portas MSI (Medium Scale Integration) - at 100 portas LSI (Large Scale Integration) - at 100.000 portas VLSI (Very LSI) - acima de 100.000 portas

Nmeros binrios negativos

Representao Sinal-Magnitude Representao em Complemento-1 Representao em Complemento-2

Representao Sinal-Magnitude
O bit MSB (mais significativo = bit da esquerda) o bit de sinal MSB = 0 (nmero positivo) MSB = 1 (nmero negativo) Exemplos: +18 = 00010010 e -18 = 10010010 Problemas: - necessrio considerar o sinal e a magnitude nas operaes aritmticas. - Existem duas representaes para o zero: (+0 e -0)

Representao em Complemento-1
A Representao em Complemento a 1 (Complemento Booleano) de um nmero binrio obtida efetuando-se a negao booleana de todos os bits do nmero. usado o operador lgico NO (NOT = ~ bit a bit C/C++). Para negar o valor de um nmero deve-se substituir cada bit 1 pelo bit 0 cada bit 0 pelo bit 1. Exemplo: 310 = 000000112

-310 = ~000000112 = 111111002 (NO bit a bit)

Representao em Complemento-2
A Representao em Complemento a 2 de um nmero binrio de m bits obtida somandose 1 ao complemento 1. Caso ocorra um carry no bit MSB, este bit descartado. Deve-se completar previamente com zeros esquerda at completar os m bits. Exemplo: 310 = 000000112 (m= 8 bits) ~000000112 = 111111002 (complemento-1) +1 -310 = 111111012 (complemento-2)

Representao em Complemento-2
A Representao em Complemento a 2 de um nmero binrio de m bits obtida somandose 1 ao complemento 1. Caso ocorra um carry no bit MSB, este bit descartado. Deve-se completar previamente com zeros esquerda at completar os m bits. Exemplo: 310 = 000000112 (m= 8 bits) ~000000112 = 111111002 (complemento-1) +1 -310 = 111111012 (complemento-2)

Complemento-2 (exemplos)
+3 = 00000011 +2 = 00000010 +1 = 00000001 +0 = 00000000 -1 = 11111111 -2 = 11111110 -3 = 11111101

Vantagens do Complemento-2
Representation nica do zero Operaes aritmticas simplificadas a representao mais usada. Revisando:
+310 = 000000112 Complemento Booleano !000000112 = 111111002 Somar 1 +12 -310 = 111111012

Complemento-2 (exemplo : overflow) Caso especial 1


0= 00000000 No bit a bit 11111111 somar 1 +1 Resultado 1 00000000 Overflow (O bit carry 1 MSB is ignorado), ento: -0=0

Complemento-2 (exemplo : overflow) Caso especial 2


-128 = 10000000 not bit a bit 01111111 Somar 1 +1 Resultado 10000000 Ento: -(-128) = -128 ? Monitorar MSB (bit de sinal) para o caso do menor nmero negativo representvel com m bits, no caso (-12810 ) = 10000000, ou seja, (+12810 ) no pode ser representado com 8 bits em complemento-2.

Faixa de valores - Complemento-2


Complemento-2 de 8 bits
+127 = 01111111 = 27 -1 -128 = 10000000 = -27

Complemento-2 de 16 bits
+32767 = 011111111 11111111 = 215 - 1 -32768 = 100000000 00000000 = -215

Funes Lgicas
So expressas pelas expresses lgicas que podem ser representadas por circuitos lgicos e tabelas da verdade (e vice-versa). Diversos circuitos podem representar a mesma funo lgica (Equivalncia de Circuitos).

Expresses Lgicas
1, 0 e Xi so expresses lgicas; Se Xi uma expresso lgica, ento Xi' e (Xi) so expresses lgicas; Se Xi e Xj so expresses lgicas, ento Xi + Xj e Xi . Xj so expresses lgicas. Prioridade dos operadores: ( ) , `, . , + As Operaes . (AND) tm prioridade sobre as operaes + (OR) (Obs: a prioridade pode ser alterada com o uso de parnteses).

Algumas identidades da lgebra Booleana

Princpio da Dualidade
Em uma equao lgica pode-se trocar: 0 por 1; 1 por 0 ; + por . ; . por + ; Xi por Xi' e Xi' por Xi a equao continua vlida. Exemplos: 0+0=01.1=1 x = a + b x' = a' . b'

Teoremas Bsicos (1)


1) Equipotncia X+X=X Y.Y=Y 2) Existncia do Elemento Identidade X+0=X Y.1=Y 3) Existncia do Elemento Nulo X+1=1 Y.0=0

Teoremas Bsicos (2)


4) Complemento X + X' = 1 Y . Y' = 0 5) Comutatividade X1 + X2 = X2 + X1 Y1 . Y2 = Y2 . Y1 6) Associatividade (X1 + X2) + X3 = X1 + (X2 + X3) (Y1 . Y2) . Y3 = Y1 . (Y2 . Y3)

Teoremas Bsicos (3)


7) Distributividade X1. (X2 + X3) = X1 . X2 + X1 . X3 Y1 + Y2 . Y3 = (Y1+ Y2) . (Y1 + Y3) 8) Absoro Direta X1 + X1 . X2 = X1 Y1 . (Y1 + Y2) = Y1 9) Absoro com o Complemento X1 + X1' . X2 = X1 + X2 Y1 . (Y1' + Y2) = Y1 . Y2

Teoremas Bsicos (4)


10) De Morgan (X1 + X2)' = X1' . X2' (Y1 . Y2)' = Y1' + Y2'

Portas completas : NAND e NOR

Equivalncia de circuitos (3) (OECTB5ed)

Smbolos alternativos para algumas portas: (a) NAND, (b) NOR, (c) AND, (d) OR

Tipos de Circuitos Lgicos


Circuitos Combinacionais: conjunto de portas cuja sada em qualquer instante de tempo funo somente das entradas. Circuitos Seqenciais: conjunto de portas cuja sada em qualquer instante de tempo funo das entradas e do estado atual (memria). Geralmente contm elementos de armazena-mento (flip-flops).

Circuitos Combinacionais: exemplos Funes Lgicas Simples Decodificadores Arranjos Lgicos Programveis (PLA) Comparadores Somadores Unidades Lgicas e Aritmticas (ULAS)

Funo XOR (OECTB5ed)

(a) Tabela-verdade para a funo XOR. (b-d) Trs circuitos para calcular essa tabela.

Equivalncia de circuitos (OECTB5ed)

Duas funes equivalentes (a) AB + AC, (b) A(B + C).

FUNO M (MAIORIA) (OECTB5ed)

(a) Tabela-verdade para a funo majoritria de trs variveis. (b) Um circuito que implementa a funo descrita em (a).

Multiplexador Seleciona para sada, F, uma das 2n linhas de entrada, (D0, D1, D2, ...) em funo das n linhas de endereo (A, B, C,...).

Multiplexador Tabela verdade


Entradas A B C 0 0 0 0 0 1 0 1 0 0 1 1 1 0 0 1 0 1 1 1 0 1 1 1 Sada F D0 D1 D2 D3 D4 D5 D6 D7

Multiplexador de oito entradas (OECTB5ed)

Multiplexador (OECTB5ed)

(a) Multiplexador MSI. (b) O mesmo multiplexador ligado para calcular a funo majoritria.

Decodificador
um circuito combinacinal de mdia integrao (MSI), que possui n linhas de entrada e 2n linhas de sada. Ativa apenas uma das 2n sadas (D0, D1, D2, ...) em funo das n linhas de entrada (A, B, C, ...).

Decodificador - Tabela verdade


Entradas A B C 0 0 0 0 0 1 0 1 0 0 1 1 1 0 0 1 0 1 1 1 0 1 1 1 D0 1 0 0 0 0 0 0 0 D1 0 1 0 0 0 0 0 0 Sadas D2 D3 D4 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 D5 0 0 0 0 0 1 0 0 D6 0 0 0 0 0 0 1 0 D7 0 0 0 0 0 0 0 1

Decodificador 3 para 8 (OECTB5ed)

Decoder 3 to 8 (OECTB4ed)

16 Mb DRAM Tpico (4M x 4)


RAS row address select CAS column address select WE write enable OE output enable

Decodificador em memrias (OECTB4ed)

Comparador de 4 bits (OECTB5ed)

Outros Circuitos Combinacionais Arranjos Lgicos Programveis (PLA) Somadores Unidades Lgicas e Aritmticas (ULAS)
(circuito programvel que implementa um conjunto de funes lgicas)

Arranjos Lgicos Programveis (OECTB5ed)


Arranjo lgico programvel de 12 entradas e 6 sadas. Os quadradinhos representam fusveis que podem ser queimados para determinar a funo a ser calculada. Os fusveis so arranjados em duas matrizes: a superior para as portas AND e a inferior para as portas OR.

Arranjo Lgico Programvel: PLA(OECTB4ed)

Somador Parcial (half-adder) (OECTB4ed)

Somadores (1) (OECTB5ed)

(a) Tabela-verdade para adio de 1 bit. (b) Circuito para um meio-somador.

Somador Completo (OECTB4ed)

Somadores (2) (OECTB5ed)

(a) Tabela-verdade para um somador completo. (b) Circuito para um somador completo.

ULA de 1 bit
F1 0 0 1 1 F0 0 1 0 1 Sada A AND B A OR B B' A Plus B

Unidade de Lgica e Aritmtica

ALU de 1 bit (OECTB5ed)

ULA Completa (OECTB4ed)

Unidades Lgica e Aritmtica (OECTB5ed)

Oito segmentos de ALU de 1 bit conectados para formar uma ALU de 8 bits. Os sinais de habilitao e de inverso no so mostrados por simplicidade.

Circuitos Seqenciais (Temporizao)

A coordenao dos eventos nos circuitos sequenciais precisam de sincronizao. As transies de estado so sincronizados pelo sinal do relgio (clock) Todos os eventos so determinados pelo sinal do relgio (clock)

Relgios (OECTB5ed)

(a) Relgio. (b) Diagrama de temporizao para o relgio. (c) Gerao de um relgio assimtrico.

Diagramas de tempo

Alguns Circuitos Seqenciais

Latches e Flip-flops (armazenam um bit) Registradores em geral Memrias Estticas Registradores de Deslocamento (Shift Registers): Deslocam os bits de entrada para a direita ou para a esquerda.

Latches e Flip-flops

So elementos biestveis (podem armazenar os valores 0 ou 1 enquanto estiverem energizados). Funcionam como dispositivos de memria Tipos de latches e Flip-flops: SR SR com relgio D JK

Latch NOR (OECTB5ed)

(a) Latch NOR no estado 0. (b) Latch NOR no estado 1. (c) Tabela-verdade para NOR.

Latch SR com relgio (OECTB5ed)

Latch D com relgio (OECTB5ed)

Latches e flip-flops tipo D (OECTB5ed)

CI Flip-flop D dual (OECTB5ed)

CI Flip-flop octal (OECTB5ed)

Diagrama lgico de uma memria 4 x 3

4 x 3 SRAM Memory (OECTB5ed)