Upload
susana-cascais
View
53
Download
0
Embed Size (px)
DESCRIPTION
Manual AC10.º ano
Citation preview
Escola Secundria D. Pedro V
Curso Profissional Tcnico de Gesto e Programao de Sistemas Informticos
Arquitectura de Computadores 10 Ano
Mdulo 1 Sistemas Digitais Verso 1.0 - 2006/07
Prof. Carla Barreiros [email protected]
Arquitectura de Computadores 10 Ano Mdulo 1 Sistemas Digitais
Prof Carla Barreiros Pgina 2
Contedos Mdulo 1 Sistemas Digitais
Captulo 1 Sistemas Digitais........................................................................................................................................ 4 1. Sistemas de Numerao e Cdigos................................................................................................. 6
1.1. Sistemas de Numerao............................................................................................................... 6 1.2. Sistema Decimal ............................................................................................................................ 7 1.3. Sistema Binrio ............................................................................................................................. 7 1.4. Sistema Octal................................................................................................................................. 8 1.5. Sistema Hexadecimal.................................................................................................................... 8 1.6. Converso entre Sistemas de Numerao ................................................................................. 9
1.6.1. Converso Decimal Binrio........................................................................................... 10
1.6.2. Converso Decimal Octal.............................................................................................. 10
1.6.3. Converso Decimal Hexadecimal ................................................................................. 11
1.6.4. Converso Binrio Decimal........................................................................................... 11
1.6.5. Converso Binrio Octal ............................................................................................... 12
1.6.6. Converso Binrio Hexadecimal ................................................................................... 12
1.6.7. Converso Octal Decimal.............................................................................................. 13
1.6.8. Converso Octal Binrio ............................................................................................... 13
1.6.9. Converso Octal Hexadecimal...................................................................................... 13
1.6.10. Converso Hexadecimal Decimal ................................................................................. 14
1.6.11. Converso Hexadecimal Binrio ................................................................................... 14
1.6.12. Converso Hexadecimal Octal...................................................................................... 15
1.7. Operaes aritmticas no Sistema de Numerao Binrio .................................................... 16 1.7.1. Adio (operador aritmtico +) ......................................................................................... 16
1.7.2. Subtraco (operador aritmtico -)................................................................................... 16
1.7.3. Multiplicao (operador aritmtico *)................................................................................ 17
1.7.4. Diviso.............................................................................................................................. 18
1.8. Cdigos ........................................................................................................................................ 18 1.8.1. Conceito de Cdigo.......................................................................................................... 18
1.8.2. Cdigos Numricos .......................................................................................................... 19
1.8.3. Cdigos Alfanumricos .................................................................................................... 21
Arquitectura de Computadores 10 Ano Mdulo 1 Sistemas Digitais
Prof Carla Barreiros Pgina 3
Captulo 2
2. lgebra de Boole e Circuitos Lgicos ...................................................................................... 23
2.1. Introduo............................................................................................................................. 23
2.2. Portas Lgicas ...................................................................................................................... 24
2.2.1. Funo AND..................................................................................................................... 24
2.2.2. Funo OR ....................................................................................................................... 25
2.2.3. Funo NOT..................................................................................................................... 25
2.3. lgebra de Boole .................................................................................................................. 26
2.3.1. Axiomas da lgebra de Boole .......................................................................................... 26
2.3.2. Teoremas da lgebra de Boole........................................................................................ 27
2.3.3. Princpio da Dualidade ..................................................................................................... 27
2.3.4. Teoremas de DeMorgan .................................................................................................. 28
2.3.5. Anlise Algbrica de Circuitos Lgicos ............................................................................ 28
2.3.6. Representao de funes booleanas............................................................................. 29
2.4. Portas lgicas (continuao) ................................................................................................ 31
2.4.1. Funo NAND .................................................................................................................. 31
2.4.2. Funo NOR..................................................................................................................... 32
2.4.3. Funo EXCLUSIVE-OR (XOR) ...................................................................................... 33
2.4.4. Funo EXCLUSIVE-NOR (XNOR) ................................................................................. 34
2.4.5. Representao de Circuitos Electrnicos com portas NAND .......................................... 35
2.5. Sntese de Circuitos Combinatrios ..................................................................................... 37
2.5.1. Mapas de Karnaugh ......................................................................................................... 37
Arquitectura de Computadores 10 Ano Mdulo 1 Sistemas Digitais
Prof Carla Barreiros Pgina 4
Sistemas Digitais
Este mdulo tem como objectivo fornecer aos alunos conhecimentos adequados compreenso dos
diversos sistemas de numerao existentes e qual a sua importncia para o funcionamento de um
computador. Pretende-se ainda que percebam o funcionamento bsico dos circuitos digitais associados
s vrias partes de um computador.
Objectivos de Aprendizagem No final deste mdulo pretende-se que o aluno seja capaz de:
Identificar os sistemas de numerao utilizados pelos computadores e aplicaes informticas; Converter correctamente valores entre os diversos sistemas de numerao; Utilizar correctamente a lgebra de Boole para resolver problemas; Reconhecer circuitos lgicos; Criar e utilizar circuitos lgicos.
Definio Um sistema pode ser definido como um operador que produz condies de sada segundo as condies
presentes entrada, de acordo com uma lei especfica. Os sistemas podem ser analgicos ou digitais.
Nos sistemas analgicos dada importncia a toda e qualquer variao nos sinais. A caracterstica essencial de um sinal ou forma de onda analgica a sua variao contnua ao longo do tempo (sem
saltos bruscos).
Nos sistemas digitais os sinais podero assumir um valor de um dado conjunto de valores possveis. Um sinal digital tem como caracterstica fundamental a variao por saltos, de uma forma descontnua.
Os sistemas digitais permitem o processamento de informao binria (ou seja, de informao
representada com os smbolos 0 e 1).
Um sistema digital define a relao entre as entradas e sadas digitais.
Arquitectura de Computadores 10 Ano Mdulo 1 Sistemas Digitais
Prof Carla Barreiros Pgina 5
Importantes reas de aplicao dos Sistemas (electrnicos) digitais
Computao pessoal (PCs, PDAs, calculadoras); Comunicaes mveis; Televiso digital; udio digital; Automvel (ABS, air-bags, controlo do motor); Controlo industrial; Simuladores; Diverso.
Temos vindo a verificar que os componentes electrnicos tm vindo a reduzir o seu tamanho sendo que
num nico chip podemos encontrar dezenas de milhes de transstores (funcionam como interruptores,
assumindo 0 (desligado) e 1 (ligado).
Arquitectura de Computadores 10 Ano Mdulo 1 Sistemas Digitais
Prof Carla Barreiros Pgina 6
1. Sistemas de Numerao e Cdigos
1.1. Sistemas de Numerao
Os sistemas de numerao podem ser classificados como: Sistemas de Numerao Posicional ou
Sistemas de Numerao No Posicional.
Definio de sistema de numerao posicional Num sistema de numerao posicional a posio em que o valor se encontra determina a sua
importncia. Tomemos por exemplo o Sistema de Numerao Decimal em que o valor mais direita
o menos significativo e o valor mais esquerda o mais significativo.
Um sistema de numerao posicional composto por:
Base - b b = 16
Alfabeto Ordenado - conjunto de b smbolos distintos (dgitos) [0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F]
Nmero - corresponde a uma sequncia de dgitos. N(b) d2 d1 d0, d-1 d-2
Valor do Dgito (peso) - funo do smbolo e da posio na
sequncia
p2 = d2 b2
Definio de sistema de numerao no posicional Um exemplo deste tipo de sistema a numerao romana em que cada smbolo do alfabeto
representa um valor independentemente da sua posio.
Os Sistemas de Numerao que vamos estudar so Sistemas de Numerao Posicional.
Sistema Decimal ou de base 10 Sistema Binrio ou de base 2 Sistema Octal ou de base 8
Sistemas de Numerao Sistema Hexadecimal ou de base 16
Arquitectura de Computadores 10 Ano Mdulo 1 Sistemas Digitais
Prof Carla Barreiros Pgina 7
1.2. Sistema Decimal
Estamos to habituados a contar e a executar as operaes bsicas (adio, subtraco,
multiplicao e diviso) usando um sistema decimal, com base b =10, que nem paramos para pensar por um momento nos algoritmos que esto na base dessas operaes.
A utilizao dessa base era inevitvel, j que a humanidade se habituou, desde muito cedo, a contar
pelos dedos das mos.
Assim, temos 10 algarismos diferentes, do 0 ao 9, para a representao normal dos nmeros.
Ocasionalmente usamos outros sistemas de numerao. Por exemplo, usa o sistema sexagesimal,
com base b = 60, para contar as unidades horrias de minutos e segundos, ou o sistema
duodecimal com base b = 12, ou o sistema de base b = 24, para identificar as horas do dia.
1.3. Sistema Binrio
O computador no entende os smbolos que constituem a linguagem humana (ex.: letras e nmeros)
e por isso foi necessrio traduzir e codificar os nossos smbolos numa linguagem prpria da
mquina, utilizando circuitos electrnicos. O computador num dado instante apenas capaz de
distinguir uma de duas situaes possveis: ligado ou desligado.
Ligado = 0 Desligado = 1
No sistema binrio ou sistema de base b=2 usam-se apenas os dgitos 0 e 1, que tambm se
designam por bits. Para representar a informao, esta traduzida numa sequncia de zeros e uns
que o computador consegue interpretar e processar.
Assim sendo, um nmero binrio legtimo , por exemplo, o nmero 1101 (2).
Arquitectura de Computadores 10 Ano Mdulo 1 Sistemas Digitais
Prof Carla Barreiros Pgina 8
1.4. Sistema Octal
No sistema octal ou base b=8, usamos 8 dgitos, so eles: 0,1,2,3,4,5,6,7; por isso se diz que a base
deste sistema de numerao oito (octal) e cada digito tambm tem um valor posicional.
Por exemplo, um nmero octal vlido seria 234533 (8).
1.5. Sistema Hexadecimal
No sistema hexadecimal, com base b=16, usamos 16 dgitos. claro, teremos que encontrar 16
representaes (smbolos) diferentes para cada um deles.
No sistema decimal usamos os dgitos 0 a 9, que podemos continuar a utilizar no sistema
hexadecimal. Mas agora precisamos de inventar dgitos. A forma habitual de o fazer consiste em
recorrer s primeiras 6 letras do alfabeto para representar os dgitos hexadecimais que, no sistema
decimal, correspondem nmeros (sequencias de dois dgitos) 10 a 15. Ento, no sistema
hexadecimal usamos, para alm dos smbolos 0 a 9, tambm as letras A a F.
Por exemplo, um nmero hexadecimal legtimo F30DA (16).
Arquitectura de Computadores 10 Ano Mdulo 1 Sistemas Digitais
Prof Carla Barreiros Pgina 9
1.6. Converso entre Sistemas de Numerao
At a este ponto, foram apresentados os sistemas de numerao mais utilizados em sistemas
digitais, falta-nos agora aprender a realizar as converses entre os vrios sistemas. Em seguida
apresentada uma tabela com as equivalncias bsicas entre os quatro sistemas.
Tabela de equivalncia entre os quatro sistemas de numerao
Decimal Binria Octal Hexadecimal 0 0000 0 0
1 0001 1 1
2 0010 2 2
3 0011 3 3
4 0100 4 4
5 0101 5 5
6 0110 6 6
7 0111 7 7
8 1000 10 8
9 1001 11 9
10 1010 12 A
11 1011 13 B
12 1100 14 C
13 1101 15 D
14 1110 16 E
15 1111 17 F
As converses possveis entre os quatro sistemas de numerao so as seguintes:
Binrio
Decimal
Octal Hexadecimal
Arquitectura de Computadores 10 Ano Mdulo 1 Sistemas Digitais
Prof Carla Barreiros Pgina 10
1.6.1. Converso Decimal Binrio
A converso da parte inteira feita pelo mtodo das divises sucessivas, que consiste em reter os restos das sucessivas divises por 2 do nmero decimal dado e dos quocientes
entretanto obtidos, at obter um quociente nulo.
Como exemplo, admitamos que queramos converter o nmero decimal 136 (10) para a base 2.
Fazemos as seguintes divises:
136(10) 2
0 68 2
0 34 2
0 17 2
1 8 2
0 4 2
0 2 2
0 1
Tendo em considerao a posio de cada algarismo, obtemos a seguinte equivalncia:
136 (10) = 10001000 (2)
Repara que este mtodo apenas utilizado para nmeros decimais inteiros e no implica perda
de informao no processo da converso. No entanto, para converter um nmero com casas
decimais j teramos que utilizar outra metodologia, a qual no aqui apresentada.
1.6.2. Converso Decimal Octal
O processo idntico ao anterior, mas a diviso realizada por 8 e no por 2.
Vejamos um exemplo:
524(10) 8
4 65 8
1 8 8
0 1
Obtemos assim, 524 (10) = 1014 (8)
Arquitectura de Computadores 10 Ano Mdulo 1 Sistemas Digitais
Prof Carla Barreiros Pgina 11
1.6.3. Converso Decimal Hexadecimal
Continuando com o mtodo das divises sucessivas, agora a diviso realizada por 16 e os
valores obtidos no resto so convertidos para hexadecimal. Veja o exemplo.
19030(10) 16
6 1189 16
5 74 16
10 4
Obtemos assim, 19030(10) = 4A56
Reparar que a correspondncia do valor 10 em hexadecimal o smbolo A.
1.6.4. Converso Binrio Decimal
Para realizar a converso de um nmero do sistema binrio num nmero do sistema decimal
temos que proceder a vrias operaes, tomemos como exemplo o nmero 10110101(2).
1 0 1 1 0 1 0 1
* * * * * * * *
27 26 25 24 23 22 21 20
= = = = = = = =
128 + 0 + 32 + 16 + 0 + 4 + 0 + 1 = 181 (10)
Sendo que, os clculos tambm podero ser apresentados da seguinte forma:
1 * 27 + 0 * 26 + 1 * 25 + 1 * 24 + 0 * 23 + 1 * 22 + 0 * 21 + 1 * 20 =
= 128 + 0 + 32 + 16 + 0 + 4 + 1 =
= 181 (10)
Em seguida encontra-se uma tabela com as potncias do nmero 2 mais utilizadas no processo de
converso.
Tabela com Potncias de 2
20 1 23 8 26 64 29 512
21 2 24 16 27 128 210 1024
22 4 25 32 28 256
Arquitectura de Computadores 10 Ano Mdulo 1 Sistemas Digitais
Prof Carla Barreiros Pgina 12
1.6.5. Converso Binrio Octal
O mtodo utilizado para esta converso diferente dos anteriores. Utiliza-se o princpio de que
para escrever cada dgito octal so necessrios somente 3 dgitos binrios, visto a relao entre
as bases respectivas ser a potncia de 3, isto , 8 = 23.
Dado o nmero 100101 (2), podemos realizar a seguinte converso:
100 1 * 22 + 0 * 21 + 0 * 20 =
= 4
101 1 * 22 + 0 * 21 + 0 * 20 =
= 5
45 (8)
1.6.6. Converso Binrio Hexadecimal
O mtodo utilizado aproveita o princpio de que para escrever um digito em hexadecimal chegam
4 dgitos em binrio (4 bits), dada a relao entre as bases respectivas ser a potncia 4, isto
16=24.
Por exemplo, dado o nmero 1101101 (2), podemos efectuar a seguinte converso:
0110 0 * 23 + 1 * 22 + 1 * 21 + 0 * 20 =
= 6(10) = 6 (16)
1101 1 * 23 + 1 * 22 + 0 * 21 + 1 * 20 =
= 13(10) = D (16)
6D (16)
Arquitectura de Computadores 10 Ano Mdulo 1 Sistemas Digitais
Prof Carla Barreiros Pgina 13
1.6.7. Converso Octal Decimal
Para obter realizar a converso de um nmero do sistema octal num nmero do sistema decimal
temos que proceder a vrias operaes, tomemos como exemplo o nmero 24643701 (8).
2 4 6 4 3 7 0 1
* * * * * * * *
87 86 85 84 83 82 81 80
= = = = = = = =
4194304 + 1048576 + 196608 + 16384 + 1536 + 448 + 0 + 1 = 5457857 (10)
1.6.8. Converso Octal Binrio
O mtodo utilizado para este tipo de converso diferente dos anteriores. Sabendo que para
escrever um dgito no sistema de numerao octal necessitamos somente de 3 dgitos binrios,
basta consultar a tabela de equivalncias entre os sistemas de numerao (pgina 8).
Vamos por exemplo converter o nmero 576 (8):
5 101 7 111 6 110
Obtendo assim o nmero 101111110 (2).
1.6.9. Converso Octal Hexadecimal
Neste caso vamos realizar duas converses, em primeiro lugar convertemos o nmero na base 8
(octal) num nmero da base 2 (binrio), por ltimo partimos do nmero da base 2 (binrio) e
convertemo-lo para a base 16 (hexadecimal).
1 Passo No caso do nmero 1726 (8), vamos separar cada dgito e fazer a correspondncia utilizando a
tabela de equivalncias entre os sistemas de numerao (pgina 8). Temos assim,
1 001 7 111 2 010 6 110
Arquitectura de Computadores 10 Ano Mdulo 1 Sistemas Digitais
Prof Carla Barreiros Pgina 14
Obtendo assim o nmero 001111010110 (2).
2 Passo Vamos agora realizar a converso binrio hexadecimal (processo descrito em maior detalhe na
pgina 14).
0011 3 1101 D 0110 6
Obtendo assim o nmero 3D6 (16).
1.6.10. Converso Hexadecimal Decimal
Para obter realizar a converso de um nmero do sistema hexadecimal num nmero do sistema
decimal temos que proceder a vrias operaes, tomemos como exemplo o nmero 9D36(16).
9 D 3 6
* * * *
163 162 161 160
= = = =
36864 + 3328 + 48 + 6 = 40246 (10)
1.6.11. Converso Hexadecimal Binrio
Sabendo que para escrever um dgito no sistema de numerao hexadecimal necessitamos de 4
dgitos binrios, basta consultar a tabela de equivalncias entre os sistemas de numerao (pgina 8).
Vamos por exemplo converter o nmero 24A8 (16):
2 0010 4 0100 A 1010 8 1000
Obtendo assim o nmero 10010010101000 (2).
Arquitectura de Computadores 10 Ano Mdulo 1 Sistemas Digitais
Prof Carla Barreiros Pgina 15
1.6.12. Converso Hexadecimal Octal
Para converter da base hexadecimal para a octal, utilizamos novamente um processo dividido
em dois passos. Em primeiro lugar convertemos da base hexadecimal para a base binria e em
segundo lugar convertemos da base binria para a base octal, atingindo assim o nosso
objectivo.
1 Passo Vamos partir do nmero F10A (16)
F 1111 1 0001 0 0000 A 1010
Obtemos assim o nmero 1111000100001010 (2).
2 Passo Sabendo que cada conjunto de 3 dgitos binrios corresponde a um nmero na base octal, base
consulta novamente a tabela de equivalncias entre os sistemas de numerao (pgina 8). 001 1 111 7 000 0 100 4 001 1 010 2
Obtemos assim o nmero 170412 (8).
Arquitectura de Computadores 10 Ano Mdulo 1 Sistemas Digitais
Prof Carla Barreiros Pgina 16
1.7. Operaes aritmticas no Sistema de Numerao Binrio
Como j sabemos, o computador consegue entender um nmero decimal aps a sua converso
para um nmero binrio, mas ainda no vimos como ele realiza as operaes aritmticas
elementares: adio, subtraco, multiplicao e diviso.
1.7.1. Adio (operador aritmtico +) A resoluo desta operao segue o mesmo algoritmo das adies no sistema de numerao
decimal, atendendo que seguinte tabela:
+ 0 1
0 0 1
1 1 10 , 0 o resultado e o 1 o transporte
Resumindo, a adio realizada comeando pelo dgito menos significativo (mais direita) at
ao mais significativo (mais esquerda). Se a soma for superior a um, o resultado zero, e
transporta-se o resto para a prxima soma.
Exemplos de somas no sistema de numerao binrio: 1 transporte
1
+1
10
1 1 1 transporte
1111
+ 101
10100
transporte
1010
+ 101
1111
1.7.2. Subtraco (operador aritmtico -) A resoluo desta operao segue o mesmo algoritmo das subtraces no sistema de
numerao decimal, atendendo s seguintes regras:
0-0 = 0 (transporte 0)
1-1 = 0 (transporte 0)
1-0 = 1 (transporte 0)
0-1 = 1 (transporte 1)
Resumindo, a subtraco realizada comeando pelo dgito menos significativo (mais direita)
at ao mais significativo (mais esquerda). A subtraco realizada bit a bit de acordo com as
regras, somando sempre o transporte ao diminuidor.
Arquitectura de Computadores 10 Ano Mdulo 1 Sistemas Digitais
Prof Carla Barreiros Pgina 17
Exemplos de subtraces no sistema de numerao binrio:
1 1 0 0 1 1 1 1 Transporte
- 0 1 0 1 1
0 1 1 1 0
1 1 0 0 1 0 1 1 1 Transporte
- 1 0 1 1 0 1
0 0 0 1 0 1
1.7.3. Multiplicao (operador aritmtico *) A multiplicao pode ser distinguida em:
Multiplicao por mltiplos de 2 Para o computador realizar o produto de um nmero binrio por 2 (10), basta acrescentar um
zero direita do bit menos significativo.
Por exemplo:
111001(2) * 2 (10) = 1110010(2) 21
111001(2) * 4 (10) = 11100100(2) 22
111001(2) * 8 (10) = 111001000(2) 23
Multiplicao por nmeros que no sejam mltiplos de 2 A resoluo desta operao segue o mesmo algoritmo das multiplicaes no sistema de
numerao decimal, atendendo seguinte tabela:
* 0 1
0 0 0
1 0 1
Exemplo:
1 0 1 1 0 1
* 1 0 1
1 0 1 1 0 1
0 0 0 0 0 0
1 0 1 1 0 1___
1 1 1 0 0 0 0 1
Nota: Para facilitar os clculos podemos no incluir as linhas correspondentes aos zeros, tendo sempre em ateno a posio da prxima parcela.
Arquitectura de Computadores 10 Ano Mdulo 1 Sistemas Digitais
Prof Carla Barreiros Pgina 18
1.7.4. Diviso
A diviso pode ser distinguida em:
Diviso por mltiplos de 2 Para o computador realizar a diviso de um nmero binrio por 2 (10), basta acrescentar o
nmero de zeros correspondentes esquerda do nmero binrio e desprezar o mesmo
nmero de dgitos direita.
Por exemplo:
111001(2) / 2 (10) = 011100 (2) 21
111001(2) / 4 (10) = 001110(2) 22
111001(2) / 8 (10) = 000111(2) 23
Diviso por nmeros que no sejam mltiplos de 2 Neste curso no existe a necessidade de estudar esta operao, devido sua
complexidade.
1.8. Cdigos
1.8.1. Conceito de Cdigo
Quando queremos representar informao binria s podemos recorrer aos smbolos (bits) 0 e 1,
como sabemos. Mas representar informao numrica em binrio apenas uma parte da
realidade, sendo que tambm necessrio arranjar um meio de representar informao no
numrica, como seja informao alfabtica (letras maisculas e minsculas, acentuadas ou no,
smbolos de pontuao, smbolos de controlo, etc.).
Tal faz-se recorrendo a cdigos binrios, que mais no so do que maneiras de representar com 0s e 1s toda a informao que se enumerou acima. Para tal, estabelecem-se palavras do
cdigo binrio com um nmero adequado de bits e em nmero suficiente para representar toda a
informao que queremos.
Naturalmente, desta forma podemos estabelecer um elevadssimo nmero de cdigos binrios, e
nem todos apresentam o mesmo interesse.
Existem dois tipos distintos de cdigos binrios:
Cdigos numricos Cdigos alfanumricos.
Arquitectura de Computadores 10 Ano Mdulo 1 Sistemas Digitais
Prof Carla Barreiros Pgina 19
1.8.2. Cdigos Numricos
Este tipo de cdigos permitem representar quantidades numricas e para cada situao
podemos estabelecer um cdigo que nos permite resolver um determinado problema.
Exemplo: Suponhamos que queramos desenvolver um sistema digital para
controlar o elevador de um prdio com r/c, duas caves e trs andares.
Como temos 6 possibilidades distintas de representar e individualizar
os 6 pisos do prdio, precisamos de comear por escrever um cdigo
numrico com 6 palavras distintas, uma por cada piso a que o elevador tem acesso. Ou seja, vamos estabelecer uma
correspondncia biunvoca entre cada um dos pisos e um conjunto de
bits por piso, diferente para cada um deles, e que constitui uma
palavra do cdigo.
Naturalmente, a primeira pergunta que nos ocorre sobre o comprimento das palavras, isto , o nmero de bits por palavra. Embora teoricamente cada palavra possa ter um comprimento
diferente do de todas as outras, vamos limitar-nos apenas aos chamados cdigos regulares, em que todas as palavras do cdigo tm o mesmo comprimento.
No caso do elevador, as palavras do cdigo tm que ter um comprimento adequado.
Como temos 6 possibilidades distintas, bastam-nos 3 bits para comprimento de cada uma das
palavras. claro que, nestas condies, apenas vamos utilizar 6 das 8 combinaes possveis.
A nica restrio que necessitamos de ter presente que no devemos codificar dois pisos com
a mesma palavra, naturalmente para evitar confuses.
Deste modo, j estabelecemos o nmero de palavras (6) e o comprimento de cada palavra (3)
para o nosso sistema de controlo do elevador. E estamos agora em posio de escolher, de
entre os cdigos possveis, um que sirva os nossos propsitos.
Por exemplo, o cdigo:
2a cave 000 1a cave 001 r/c 010 1o andar 011 2o andar 100 3o andar 101
Reparemos que o formmos como se estivssemos a escrever nmeros com 3 bits cujos
equivalentes decimais fossem desde 0 at 5. Geramos, desta forma, um Cdigo Binrio Natural (CBN), com palavras de comprimento 3.
Arquitectura de Computadores 10 Ano Mdulo 1 Sistemas Digitais
Prof Carla Barreiros Pgina 20
Cdigo Binrio Natural (CBN) Como acabmos de ver, o cdigo binrio natural ou CBN formado por palavras de
comprimento fixo (trata-se de um cdigo regular). Se o comprimento de cada palavra for igual a
n, o nmero mximo de palavras do cdigo igual a 2n. Os nmeros na base 2 destes cdigos
tm equivalentes decimais.
Cdigo BCD (Binary Coded Decimal) Uma situao muito frequente a da necessidade de codificar numericamente dez quantidades
distintas, correspondentes aos dgitos do sistema decimal, 0 (10) a 9 (10). Tal sucede, por exemplo,
em mquinas de calcular que utilizam o sistema decimal para a entrada de dados e para a sada
dos resultados.
Naturalmente, podemos utilizar as 10 primeiras palavras de comprimento 4 do CBN que passar,
nestas circunstncias, a ficar redundante (na medida em que apenas utilizamos 10 das 16
palavras desse cdigo). Obtemos, nessas condies, o cdigo BCD como possvel ver na
seguinte tabela.
Dgito Decimal Palavra do cdigo
BCD 0 0000
1 0001
2 0010
3 0011
4 0100
5 0101
6 0110
7 0111
8 1000
9 1001
Ao utilizar este cdigo devemos indic-lo da seguinte forma: 0010 (BCD).
Existem muitos outros cdigos que podem ser definidos, cada qual com caractersticas e interesses diferentes consoante o problema que precisamos resolver.
Arquitectura de Computadores 10 Ano Mdulo 1 Sistemas Digitais
Prof Carla Barreiros Pgina 21
1.8.3. Cdigos Alfanumricos
Tratam-se de cdigos que tm por objectivo codificar, para alm de informao numrica,
tambm informao alfabtica, como sejam as letras maisculas e minsculas, os smbolos de
pontuao, as letras acentuadas caractersticas dos alfabetos latinos, os smbolos utilizados nas
lnguas orientais, etc., e ainda smbolos de controlo.
Cdigo ASCII Existe uma tabela, designada por ASCII (American Standard Code for Information Interchange),
que utiliza combinaes de nmeros de 7 ou 8 bits, permitindo, respectivamente, a
representao de 128 ou 256 caracteres.
A ASCII padro utiliza 7 bits para representar todas as maisculas e minsculas, os algarismos
de 0 a 9, sinais de pontuao e controlo.
Existem actualmente um grande nmero de sistemas que suportam a utilizao o ASCII
expandido, que utiliza o 8 bit de cada carcter para identificar mais 128 caracteres de smbolos,
letras de outros idiomas e smbolos grficos.
Por exemplo, quando carregamos na tecla a, procede-se a uma converso para o sistema de
numerao binrio 1100001 (2), ou 97 (10). este nmero binrio que o computador consegue
entender e processar.
Cdigo UNICODE Uma limitao sria do cdigo ASCII resulta de ter sido desenhado para codificar informao
alfabtica na lngua inglesa, que no contem smbolos de acentuao (como o portugus) e
no capaz de representar muitos outros smbolos.
A necessidade de incluir outros alfabetos (grego, cirlico, armnio, hebreu, rabe, indiano, etc.),
de smbolos matemticos e de figuras geomtricas, e ainda de dezenas de milhar de caracteres
ideogrficos, como os utilizados em chins, levou ao aparecimento do Cdigo UNICODE ou
ISO/IEC 10646 UCS-2 (Universal Character Set-2). Este cdigo uma evoluo da tabela ASCII
com 16 bits por smbolo, aberto incluso de novos caracteres e smbolos.
Arquitectura de Computadores 10 Ano Mdulo 1 Sistemas Digitais
Prof Carla Barreiros Pgina 22
Tabela ASCII
Arquitectura de Computadores 10 Ano Mdulo 1 Sistemas Digitais
Prof Carla Barreiros Pgina 23
2. lgebra de Boole e Circuitos Lgicos
2.1. Introduo Como sabes, os sistemas digitais so sistemas que processam informao binria, isto , informao que pode ser representada por 1 e 0.
No domnio que nos interessa, sistemas digitais electrnicos so circuitos elctricos que processam dados representados por zeros e uns, correspondentes a determinados nveis de tenses elctricas
(Volt) ou de intensidades de corrente (Ampere) altas e baixas: um 1 equivale a tenses acima de um
determinado limiar e um 0 para valores inferiores a um certo limite mnimo.
Exemplo: Imaginemos que o estado, aceso ou apagado, de uma vulgar lmpada, representa um 1 ou um 0,
respectivamente. A lmpada no acende apenas quando a tenso da rede elctrica atinge os 220V, nem
apaga s quando esse valor chega aos 0V. Existe um intervalo de tenses elctricas baixas para as
quais a lmpada no emite qualquer luz e a partir de uma tenso elctrica alta a lmpada fica acesa.
Existe naturalmente um intervalo de valores da tenso elctrica em que poderemos considerar o estado
da lmpada como indefinido em que no se pode representar bem nem o 1 nem o 0.
Um sistema digital electrnico tambm admite estas flutuaes da tenso de alimentao de acordo com
as caractersticas dos componentes electrnicos com que foi construdo (mais tarde vamos analisar esta
questo com maior detalhe).
Arquitectura de Computadores 10 Ano Mdulo 1 Sistemas Digitais
Prof Carla Barreiros Pgina 24
2.2. Portas Lgicas
Qualquer sistema digital electrnico pode ser construdo utilizando apenas 3 tipos de funes lgicas elementares designadas por AND, OR e NOT (em portugus E, OU e NO). As funes lgicas elementares operam sobre valores lgicos 0 ou 1 (ou apenas um para o caso da funo
NOT) e produzem um valor lgico para cada uma das combinaes possveis dos valores dos
operandos.
Aos componentes electrnicos que realizam essas funes lgicas elementares chamam-se portas lgicas (em ingls gates ou logic gates), e estende-se tambm esta designao aos smbolos grficos que as representam. Uma funo complexa pode ser construda ligando entre si smbolos
que representam as portas lgicas elementares.
As funes AND, OR e NOT so a base em que assenta o funcionamento de qualquer sistema
digital e formam o conjunto bsico de funes em que se fundamenta a lgebra de Boole, que
permite formalizar e tratar matematicamente o comportamento de sistemas digitais.
2.2.1. Funo AND Sendo A e B os operandos e a funo lgica AND o operador, vamos obter um resultado
verdadeiro (1) apenas quando A e B so verdadeiros (1), caso contrrio obteremos um resultado
falso (0).
Assim, a Tabela de Verdade produzida para esta operao :
A B A AND B
0 0 0
0 1 0
1 0 0
1 1 1 Esta operao poder ser representada como:
A AND B A & B
A B A . B
A porta lgica AND pode ser representada como:
ou
Arquitectura de Computadores 10 Ano Mdulo 1 Sistemas Digitais
Prof Carla Barreiros Pgina 25
2.2.2. Funo OR Sendo A e B os operandos e a funo lgica OR o operador, vamos obter um resultado falso (0)
apenas quando A e B so falsos (0), caso contrrio obteremos um resultado verdadeiro (1).
Assim, a Tabela de Verdade produzida para esta operao :
A B A OR B
0 0 0
0 1 1
1 0 1
1 1 1 Esta operao poder ser representada como:
A OR B A + B
A v B
A porta lgica OR pode ser representada como:
ou
2.2.3. Funo NOT Sendo A o operando e a funo lgica NOT o operador, vamos obter um resultado falso (0)
quando A for verdadeiro (1) e um resultado verdadeiro (1) quando A for falso (0).
Assim, a Tabela de Verdade produzida para esta operao :
A NOT A
0 1
1 0 Esta operao poder ser representada como:
NOT A
A
A porta lgica OR pode ser representada graficamente como:
ou
Arquitectura de Computadores 10 Ano Mdulo 1 Sistemas Digitais
Prof Carla Barreiros Pgina 26
2.3. lgebra de Boole A lgebra de Boole foi inventada em 1854 pelo matemtico ingls George Boole, muito antes da
inveno do computador digital. Com esta lgebra o matemtico pretendeu estabelecer um conjunto
universal de regras para combinar proposies que podem ser verdadeiras ou falsas e avaliar a sua
veracidade ou falsidade.
Em 1938, na altura em que se davam os primeiros passos para o nascimento dos computadores
digitais, Claude Shannon adaptou a lgebra de Boole para descrever o funcionamento de circuitos
elctricos construdos com interruptores comandados electricamente. Fazendo corresponder o
estado de um interruptor a uma varivel booleana, esta s pode assumir dois valores diferentes
(ligado ou desligado representado pelo valor 1 ou 0) que podem ser associados aos valores lgicos
verdadeiro ou falso da lgebra de Boole.
Ao conjunto de definies que estabelecem as regras de operao da lgebra so denominados de
axiomas e teoremas.
2.3.1. Axiomas da lgebra de Boole Axiomas representam o conjunto mnimo de regras que fundamentam toda a lgebra, e que so assumidos como verdadeiros (isto , no se podem demonstrar).
Os axiomas da lgebra de boole comeam por estabelecer que, nesta lgebra, uma varivel
apenas pode assumir os valores 0 ou 1; em seguida definem as trs operaes lgicas j
referidas. Com base nos axiomas pode-se construir um conjunto de teoremas que so relaes
que, uma vez demonstradas com recurso aos axiomas ou outros teoremas, pode ser aplicados
na manipulao de expresses algbricas.
Tabela de Axiomas da lgebra de Boole
A1 X = 0 se X 1 A1 X = 1 se X 0
A2 Se X = 0 ento X = 1 A2 Se X = 1 ento X = 0
A3 0 . 0 = 0 A3 1 + 1 = 1
A4 1 . 1 = 1 A4 0 + 0 =0
A5 0 . 1 = 1 . 0 = 0 A5 1 + 0 = 0 + 1 = 1
Tambm semelhana do que acontece na escrita de expresses aritmticas, considera-se que
o produto lgico (AND) tem prioridade sobre a soma lgica (OR) e podem ser utilizados
parntesis para alterar essa prioridade natural dos operadores.
No esquecer que os operadores da lgebra de Boole podem ser representados graficamente e
que atravs das portas lgicas que se constroem os circuitos lgicos projectados.
Arquitectura de Computadores 10 Ano Mdulo 1 Sistemas Digitais
Prof Carla Barreiros Pgina 27
2.3.2. Teoremas da lgebra de Boole Os teoremas so relaes booleanas que se considera como verdadeiras e que se podem
demonstrar com recurso aos axiomas e a outros teoremas que j tenham sido demonstrados.
Um conjunto bsico de teoremas facilita a manipulao de expresses algbricas.
Na tabela seguinte apresentam-se os teoremas por ordem crescente de complexidade, o que
permite fundamentar os teoremas mais complexos atravs dos teoremas mais simples
devidamente comprovados.
Tabela de Teoremas fundamentais da lgebra de Boole
T1 X + 0 = X T1 X . 1 = X
T2 X + 1 = 1 T2 X . 0 = 0
T3 X + X = X T3 X . X = X
T4
T5 X + X = 1 T5 X . X = 0
T6 X + Y = Y + X T6 X . Y = Y . X
T7 ( X + Y ) + Z = X + ( Y + Z ) T7 ( X . Y ) . Z = X . ( Y . Z )
T8 X . Y + Y . Z = X . ( Y + Z ) T8 ( X + Y ) . (X + Z ) = X + Y . Z
T9 X + X . Y = X T9 X . ( X + Y ) = X
T10 X . Y + X . Y = X T10 ( X + Y ) . ( X + Y ) = X
T11 X . Y + X . Z + Y . Z = X . Y + X . Z T11 (X + Y) . (X + Z) . (Y + Z) = (X + Y) . (X + Z)
T12 ( X . Y ) = X + Y T12 ( X + Y ) = X . Y
2.3.3. Princpio da Dualidade
Como foi possvel observar os axiomas e os teoremas aparecem aos pares: T1 e T1, T2 e T2,
etc. Note que por exemplo o teorema T1 pode ser obtido custa do teorema T1 trocando entre
si os operadores soma lgica e produto lgico, e tambm os valores lgicos 0 e 1, mantendo as
negaes inalteradas.
A esta propriedade chama-se o Principio da Dualidade e pode ser aplicada a qualquer igualdade envolvendo expresses booleanas. relao resultante chama-se de dual: por
exemplo, os teoremas T1 e T2 so duais dos teoremas T1 e T2.
Note-se que isto apenas verdade quando aplicado a relaes de igualdade entre expresses
booleanas e no a expresses isoladas.
(X)
Arquitectura de Computadores 10 Ano Mdulo 1 Sistemas Digitais
Prof Carla Barreiros Pgina 28
2.3.4. Teoremas de DeMorgan As Leis de DeMorgan ou Teoremas de DeMorgan estabelecem as relaes que se apresentaram
no teorema T12 e T12:
( X . Y ) = X + Y e tambm, pelo princpio da dualidade:
( X + Y ) = X . Y
Esta regra pode ser generalizada a uma funo qualquer com N variveis, permitindo obter a sua
negao apenas substituindo cada varivel pela sua negao, e trocando entre si os operadores
AND e OR.
2.3.5. Anlise Algbrica de Circuitos Lgicos O conjunto de axiomas e teoremas apresentados constituem um conjunto de regras que
permitem manipular expresses booleanas. Estas operaes so importantes, no contexto do
projecto de sistemas digitais, e consistem na simplificao de expresses de forma a construir
circuitos electrnicos que realizem uma funo pretendida e que naturalmente, sejam o mais
simples possvel, melhorando o desempenho e diminuindo os custos de uma implementao.
Exemplo: Aplicao de teoremas de lgebra de Boole para simplificar uma expresso booleana:
Provar que (A . B + (A + B)) + A . C = A
(A . B + (A + B)) + A . C = (Teorema T12 Leis de DeMorgan) A . B + A + B + A . C = (Teorema T8) A . (B + B) + A . C = (Teorema T5) A . 1 + A . C = (Teorema T1) A + A . C = (Teorema T9) A
Observar como uma expresso pode ser simplificada, melhorando sem dvida o desempenho e
o custo necessrio para a construo do sistema digital electrnico.
Arquitectura de Computadores 10 Ano Mdulo 1 Sistemas Digitais
Prof Carla Barreiros Pgina 29
2.3.6. Representao de funes booleanas Como j se viu, uma funo booleana pode ser representada de vrias formas, tais como:
Expresses algbricas Circuitos lgicos Tabelas de Verdade
Uma expresso algbrica envolvendo N variveis define uma funo booleana com N variveis. Para cada uma das 2N possveis combinaes para os valores lgicos das N variveis, o valor da
funo pode ser apenas 0 ou 1.
F(X,Y,Z) = Z.Y + X.Z + Y.Z
Um circuito lgico pode ser considerado com a traduo da expresso algbrica para uma representao grfica formada pela interligao de smbolos (portas lgicas) que representam os
operadores da lgebra de boole. regra comum desenhar as entradas do circuito do lado
esquerdo e a sada do lado direito do esquema.
Numa tabela de verdade representa-se o valor da funo para cada combinao das variveis independentes. As 2N combinaes das variveis independentes devem ser escritas segundo a
ordem natural dos nmeros binrios representados pelos valores das variveis da funo.
Cada uma destas representaes tem o seu objectivo e as suas vantagens e desvantagens.
Arquitectura de Computadores 10 Ano Mdulo 1 Sistemas Digitais
Prof Carla Barreiros Pgina 30
Em seguida vamos estudar dois mtodos para obter a expresso algbrica de uma funo
booleana representada por uma tabela de verdade.
Soma Cannica Tendo uma funo booleana representada como uma tabela de verdade, pode-se obter
imediatamente uma expresso algbrica realizando a soma lgica dos termos mnimos para os
quais a funo vale 1.
F (X, Y, Z) = X.Y.Z + X.Y.Z + X.Y.Z + X.Y.Z + X.Y.Z
A expresso assim obtida chamada de soma cannica ou expresso cannica soma-de-
produtos e pode ser tomada como o ponto de partida para construir um circuito lgico que
implemente essa funo.
Produto Cannico De forma dual ao que foi visto anteriormente, tambm podemos obter uma expresso algbrica
correcta realizando o produto lgico dos termos mximos para os quais a funo vale 0 obtm-se
o produto cannico ou expresso cannica produto-de-somas.
F (X, Y, Z) = (X+Y+Z) . (X+Y+Z) . (X+Y+Z)
Arquitectura de Computadores 10 Ano Mdulo 1 Sistemas Digitais
Prof Carla Barreiros Pgina 31
2.4. Portas lgicas (continuao)
Nas tecnologias mais comuns as portas NOR e NAND (portas inversoras) requerem menos
transstores que as portas lgicas OR e AND (portas no inversoras).
De facto, as portas lgicas OR e AND que so habitualmente realizadas com portas lgicas NOR
ou NAND seguida de uma porta lgica NOT.
2.4.1. Funo NAND
A funo NAND o inverso da funo AND, ou seja, funcionam com uma porta lgica AND
seguida de uma porta lgica NOT.
Sendo A e B os operandos e a funo lgica NAND o operador, vamos obter um resultado falso
(0) apenas quando A e B so verdadeiros (1), caso contrrio obteremos um resultado verdadeiro
(1).
F (X, Y) = X + Y = X . Y Assim, a Tabela de Verdade produzida para esta operao :
X Y X NAND Y
0 0 1
0 1 1
1 0 1
1 1 0 Esta operao poder ser representada como:
X NAND Y X . Y
A porta lgica NAND pode ser representada como:
ou
Arquitectura de Computadores 10 Ano Mdulo 1 Sistemas Digitais
Prof Carla Barreiros Pgina 32
2.4.2. Funo NOR
A funo NOR o inverso da funo OR, ou seja, funcionam com uma porta lgica OR seguida
de uma porta lgica NOT.
Sendo A e B os operandos e a funo lgica NOR o operador, vamos obter um resultado
verdadeiro (1) apenas quando A e B so falsos (0), caso contrrio obteremos um resultado falso
(0).
F (X, Y) = X . Y = X + Y Assim, a Tabela de Verdade produzida para esta operao :
X Y X NOR Y
0 0 1
0 1 0
1 0 0
1 1 0 Esta operao poder ser representada como:
X NOR Y X + Y
A porta lgica NOR pode ser representada como:
ou
Arquitectura de Computadores 10 Ano Mdulo 1 Sistemas Digitais
Prof Carla Barreiros Pgina 33
2.4.3. Funo EXCLUSIVE-OR (XOR)
O resultado da funo XOR verdadeiro se uma e apenas uma das 2 entradas for verdadeira,
dizendo de outra forma verdadeiro (1) quando os operandos A e B so diferentes.
F (X, Y) = X . Y + X . Y = X Y Assim, a Tabela de Verdade produzida para esta operao :
X Y X XOR Y
0 0 0
0 1 1
1 0 1
1 1 0 Esta operao poder ser representada como:
X XOR Y
X Y
A porta lgica NOR pode ser representada como:
ou
Arquitectura de Computadores 10 Ano Mdulo 1 Sistemas Digitais
Prof Carla Barreiros Pgina 34
2.4.4. Funo EXCLUSIVE-NOR (XNOR)
O resultado da funo XNOR verdadeiro (1) quando os operandos A e B so iguais.
F (X, Y) = X . Y + X . Y = X Y
Assim, a Tabela de Verdade produzida para esta operao :
X Y X XNOR Y
0 0 1
0 1 0
1 0 0
1 1 1 Esta operao poder ser representada como:
X XNOR Y
X Y
A porta lgica XNOR pode ser representada como:
ou
Arquitectura de Computadores 10 Ano Mdulo 1 Sistemas Digitais
Prof Carla Barreiros Pgina 35
2.4.5. Representao de Circuitos Electrnicos com portas NAND
A porta NAND considerada uma porta universal porque qualquer circuito digital pode ser
realizado apenas com portas NAND.
Qualquer funo booleana realizvel apenas com portas NAND por substituio directa das
operaes NOT, AND e OR.
A operao NOT normalmente considerada, em sentido lato, como uma NAND de 1 entrada.
Nalgumas tecnologias (p.ex. TTL) as portas NAND so as portas mais simples (portanto mais
baratas), pelo que vantajosa a realizao de circuitos s com NANDs.
Uma funo representada na forma de uma soma de produtos, pode ser transformada numa
forma directamente realizvel apenas com portas NAND por simples aplicao da lei de
DeMorgan.
Exemplo:
Arquitectura de Computadores 10 Ano Mdulo 1 Sistemas Digitais
Prof Carla Barreiros Pgina 36
De forma dual, tambm possvel implementar um circuito com portas lgicas NOR. No caso de a funo estar representada como um produto de somas, a transformao mantm a
estrutura.
Exemplo: