ARQUITETURA DE HARDWARE
ELETRNICA DIGITAL E MICROPROCESSADORES
Verso 31/03/1999
Sumrio
Mdulo I
1. Aritimtica Binria
1.1 1.2 1.3 1.4 1.5 1.6 1.7 1.8 Introduo Nmeros Binrios Nmeros Hexadecimais Outras Bases Soma e Produto Binrio Nmeros Complemento de 2 Subtrao em Binrio Lista de Exerccios 1
2. Portas Lgicas
2.1 2.2 2.3 2.4 2.5 2.6 2.7 2.8 2.9 2.10 Introduo Porta E AND Porta OU OR Porta NO NOT Lista de Exerccios 2 Porta NO E NOT AND NAND Porta NO OU NOT OR NOR Porta OU EXCLUSIVO XOR EXCLUSIVE OR Porta NOR NOR Exclusivo Exclusive NOR Lista de Exerccios 3
4. Cdigos Alfanumricos
4.1 4.2 Introduo Cdigo ASCII e EBCDIC
5. Bibliografia
MDULO I
1. Aritimtica Binria
1.1 Introduo Desde os primeiros anos de nossa vida aprendemos a trabahar com os nmeros. O sistema que a sociedade nos apresenta o sistema decimal. O sistema decimal utiliza 10 smbolos para apresentar os nmeros. So eles 0,1,2,3,4,5,6,7,8,9. Com estes smbolos aprendemos a efetuar contas de soma, subtrao, produto e diviso. 1.2 Nmeros Binrios O sistema binrio viabilizou os computadores atuais. Esta uma afirmao vlida, pois sem os nmeros binrios os sistemas atuais no existiriam. Este fato deve-se s caracteristicas dos sistemas digitais, que so de natureza biestvel, ou seja, apresentam 2 valores (Tem energia ou no tem energia). Os smbolos utilizados para os numeros binrios so 0 e 1, e cada dgito possu nome de bit (termo proveniente do ingls Binary Digit). Como as pessoas esto acostumadas a pensar na base 10, a seguir mostramos um comparativo entre a base 2 e a base 10. Decimal 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 Binrio 1 1 0 0 1 1 0 0 1 1 0 0 1 1 0 0 1 1 0 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0
1 1 1 1 1
1 1 1 1 1 1 1 1 0 0 0 0 0
1 1 1 1 0 0 0 0 1 1 1 1 0 0 0 0 1
24 23 22 21 20 16 8 4 2 1
Desta tabela podemos tirar algumas concluses: Para representarmos o nmero decimal 1, necessitamos de apenas 1 bit Para representarmos o nmero decimal 13, necessitamos de no mnimo 4 bits Para representarmos o nmero decimal 20, necessitamos de no mnimo 5 bits.
28 temos 256 combinaes de 0s e 1s. Neste caso em especial denominamos byte, ou seja, um conjunto de 8 bits forma o byte, que representa internamente no computador, um algarismo qualquer, Letra A, Nmero 8, Smbolo *, etc. Converso de bases Foi desenvolvido um mtodo que nos permite converter nmeros da base 10 para a base 2 e vice-versa. Este mtodo est demonstrado a seguir: Dado um nmero inteiro em Decimal: Nmero 17 1o. Passo Dividir o nmero pela base que desejamos (no caso base 2)
17 2 1 8 2 (LSB) 0 4 2 Restos 0 2 2 0 1 1
2 0
(MSB) 2o. Passo Ordenar os restos das divises, onde o ltimo resto o Bit Mais Significativo (MSB) e o primeiro resto o Bit Menos Significativo (LSB).
(17)10
(10001)2
Para efetuarmos o inverso, ou seja, da base 2 para a base 10, temos os seguintes passos: 1o. Passo Montar o quadro Dado o nmero (10001)2, converter para a base 10
1 0 0 0 1 24 23 22 21 20 Colocar da esquerda para a direita a Base de Origem elevada a 0, 1, 2 .. Valor em decimal aps executar a exponenciao Multiplicar a linha A pela Linha B Valor em Decimal
B C
16 8 4 2 1 16 0 0 0 1
16+0+0+0+1 = 17 5
Conversso da Base 2 para a Base 10 (0,1011)2 converter para a base 10 A 0 ,1 0 1 1 Colocar da esquerda para a direita a Base de Origem elevada a 0, -1, -2 .. Valor em decimal aps executar a exponenciao Multiplicar a linha A pela Linha B Valor em Decimal
0 0,5
2o. Passo Efetuar a soma dos termos da Linha C Conversso da Base 10 para a Base 2 Dado o nmero (0,6875)10 converter para a Base 2
MSB
0,5+0,125+0,0625 = 0,6875
0 , 6 , 3 , 7
1 , 5
LSB
1 , 0
8 x 7 x 5 x 0 x 0
7 5 0 0 0
Exemplo:
( 0 1 0 1 1 0 0 0)2 (5 8 )16
Podemos utilizar os mesmos mtodos anteriormente estudados para a mudana de base. Para convertermos um nmero da base 2 para a base 16, precisamos em primeiro lugar mudarmos da Base 2 para a Base 10 e depois da base 10 para a base 16. Alm deste mtodo, as bases que podem ser representadas por 2x, como 2, 4, 8, 16, podem ser efetuadas transformaes de forma mais simples. Veja exemplo a seguir:
Base 2 Temos 0 ou 1 (2 3 0 3)4 Base 4 Temos 00, 01, 10, 11 (5 4 3)8 Base 8 - Temos 000, 001,.111 (B 3)16 Base 16 Temos 0000, 0001..1111
100
0 0 1 1)2
Tabelas de Bases Base 2 21 Combinaes 1 bit 0 0 1 1 Base 4 22 Combinaes 2 bits 00 0 01 1 10 2 11 3 Base 8 23 Combinaes 3 bits 000 0 001 1 010 2 011 3 100 4 101 5 110 6 111 7
Base 16 24 Combinaes 4 bits 0000 0 0001 1 0010 2 0011 3 0100 4 0101 5 0110 6 0111 7 1000 8 1001 9 1010 10 A 1011 11 B 1100 12 C 1101 13 D 1110 14 E 1111 15 F
Uma das formas de trabalharmos com nmeros binrios e com os nmeros cuja base 2x, encontra-se descrita a seguir: Multiplicamos o nmero binrio pela expresso exponencial 2x da seguinte forma:
210 29 28
1024 512
27 26
64
25 24
32 16
23 22
8 4
21 20
2 1
256 128
Exemplo: O Nmero binrio (0 1 0 0 1 1 0 0)2 Em decimal vale: 0x128 + 1x64 + 0x32 + 0x16 + 1x8 + 1x4 + 0x2 + 0x1 = (76)10 Em Hexadecimal vale: Dividimos em grupos de 4 dgitos 0x8 + 1x4 + 0x2 + 0x1 = 4 1x8 + 1x4 + 0x2 + 0x1 = A (12 em decimal)
(4A)16
Em Octal vale: Dividimos em grupos de 3 dgitos 0x4 + 0x2 + 1x1 = 1 (1o termo 0x4 inserido p/ completar 3 dgitos 0x4 + 0x2 + 1x1 = 1 1x4 + 0x2 + 0x1 = 4
(114)8
Na Base 4 vale: Dividimos em grupos de 2 dgitos 8
(1031)4
1.4 Outras Bases Como foi visto nos captulos anteriores, podemos fazer uma analogia com outras bases. Exemplos no faltam, Base 4, Base 8, Base 5, Base 6, Base 12, etc. Base 5 Smbolos utilizados 0,1,2,3,4 Para passarmos um nmero na Base 10 para a Base 5, temos que dividir por 5. 123 5 3 24 5 4 4 5 4 0
Ento
12310
4435
Para passarmos um nmero da Base 5 para a Base 10, temos que multiplicar pela o nmero pela Base elevada a um expoente, e somar os termos obtidos. (4 52 4 3)5
100 20
1.5 Soma e Produto Binrio A soma em binrio obedece as mesmas regras da soma em decimal, porm temos que entender que em binrio possumos apenas 2 smbolos para indicarmos um nmero (0 e 1).
+1
Exemplo:
0x0 = 0,
0x1 = 0, x
(0 (1 0 + 0 0 0 1 1
(0 1 1 1 1)2
1.6 Nmeros Complemento de 2 O Complemento de 2 muito utilizado nos microprocessadores, uma vez que internamente eles executam somente algumas funes, como soma e deslocamento. Derivado destas funes o microprocessador executa as demais funes de diviso e subtrao. O complemento de 2 de um nmero, representa o mesmo na sua forma negativa. Para acharmos o cmplemento de 2 de um nmero binrio, temos que seguir os passos: Dado um nmero binrio: Calculamos o seu complemento de 1 (inverso dos nmeros) Somamos 1 no bit menos significativo
1.7 Subtrao em Binrio Ento para efetuarmos uma subtrao entre dois nmeros binrios, fazemos o seguinte: Achamos o complemento de 2 do subtraendo e somamos com o termo a ser subtrado (minuendo). Exemplo:
10
Despreza
. 0 0 0 0 1 1 1 . . 1 1 1
0000011 0000010 0000001 0000000 1111111 1111110 1111101 0000010 0000001 0000000
SINAL AMPLITUDE
11
2. Portas Lgicas
2.1 Introduo As portas lgicas expressam a implementao eletrnica dos circuitos internos a um microprocessador ou um circuito qualquer. Elas podem ser implementadas por transistores, biestveis, e so a melhor forma de visualizarmos as operaes binrias nos computadores e microprocessadores. Todos os sistemas digitais so construdos usando-se apenas 3 tipos de portas lgicas, a porta E, OU, e NO. Os demais tipos de portas lgicas so uma combinao destas. 2.2 Porta E AND A porta lgica E obedece o seguinte esquema: A B
Ligao em sre. A lmpada ascender somente se as 2 chaves (A e B) estiverem fechadas. Considerando a chave aberta como 0 e a chave fechada como 1, temos as seguintes possibilidades:
AB 0 0 0 1 1 0 1 1
Y 0 0 0 1 - Lmpada ascende
A tabela acima, tambm e\ conhecida como tabela verdade da porta E ou porta AND O desenho que expressa esta porta : A B 2.3 Porta OU OR A porta lgica OU obedece o seguinte esquema: A B Y
Ligao em paralelo. A lmpada ascender se a chave A estiver fechada ou se a chave B estiver fechada ou se as duas estiverem fechadas.
12
AB 0 0 0 1 1 0 1 1
A tabela acima, tambm conhecida como tabela verdade da porta OU ou porta OR O desenho que expressa esta porta : A B Y
2.4 Porta NO NOT Tambm conhecida como porta inversora, tem a propriedade de inverter o sinal entrante.
A 0 1
Y 1 0
13
ABY 0 0 1 0 1 1 1 0 1 1 1 0
ABY 0 0 1 0 1 0 1 0 0 1 1 0
2.8 Porta OU EXCLUSIVO XOR EXCLUSIVE OR Esta porta muito importante no estudo dos microprocessadores, pois a sua tabela verdade exprime o resultado de uma soma binria, exclundo-se o vai um.
ABY 0 0 0 0 1 1 1 0 1 1 1 0
2.9 Porta NXOR NOR Exclusivo Exclusive NOR a porta XOR com um inversor na sada. _____
ABY 0 0 1 0 1 0 1 0 0 1 1 1
14
A B C D
A simplificao dos circuitos muito importante para o projetista, pois esta simplificao ir muitas vezes minimizar o gasto com materiais, e tambm diminuir a complexidade do circuito digital equivalente. Nos prximos captulos iremos ver algumas destas tcnicas.
15
3.2 Expresses Booleanas de soma de produtos ( Termos mnimos) Para desenvolvermos uma expresso de termo mnimo a partir de uma tabela verdade, necessitamos calcular cada termo da tabela verdade onde aparece o resultado Y = 1. Exemplos:
AB 00 01 10 11
Y 0 1 1 1
Y 1 0 0 1 1 0 0 0
3.3 Expresses Booleanas de produto de somas (Termos mximos) Para desenvolvermos uma expresso de termo mximo a partir de uma tabela verdade, necessitamos calcular cada termo da tabela verdade onde aparece o resultado Y = 0. Exemplos:
AB 00 01 10 11
_ Y = (A + B) . (A + B)
_ _ _ _ Y = (A+B+C).(A+B+C).(A+B+C).(A+B+C)
16
3.4 Mapa de Karnaugh de 2, 3, 4 e 5 variveis A lgebra Booleana a base para simplificarmos circuitos lgicos. Neste captulo iremos ver uma maneira simples de simplificarmos circuitos, que o Mapa de Karnaugh. Este mtodo embora simples, atende Tabelas da Verdade de 2, 3,4 ou 5 variveis. A partir do estudo de Tabela da Verdade com mais de 5 variveis, este mtodo torna-se muito complexo. O mtodo consiste em seguir s seguintes passos: Passo 1: Escrever a expresso booleana de termos mnimos a partir da tabela verdade. Passo 2: Colocar um 1 no Mapa para cada grupo de variveis submetido a uma operao AND. Passo 3: Traar laos em torno dos grupos adjacentes de dois, quatro, ou de oito 1s no mapa. (Os laos podem se sobrepor) Passo 4: Eliminar a varivel (ou variveis) que aparece(m) com seu(s) complemento(s) dentro de um lao e preservar a varivel (ou variveis) deixadas(s). Passo 5: Submeter, logicamente, a uma operao OR os grupos que restarem para formar a expresso de termos mnimos simplificada. Exemplos:
AB 00 01 10 11
Y 0 1 1 1
Expresso resultante: Y = A + B
3.5 Lista de Exerccios 4
17
C A F
L E I T
C H O C
A U C
INCIO
CHOCO CAF
AUC
LEITE
Caf Puro Caf com Leite Chocolate com Leite Todos podem ter ou no Aucar A mquina necessita de Ficha paa funcionar
Para o Projeto apresentado, construir: Desenhar a Tabela Verdade Determinar os Termos Mnimos e/ou Mximos Simplificar pelo Mtodo do Mapa de Karnaugh Desenhar o Circuito Lgico Equivalente
18
4. Cdigos Alfanumricos
4.1 Introduo Os nmeros binrios foram usados para representar vrios nmeros, mas no somente os nmeros eles representam. Nos computadores eles representam as letras do alfabeto, sinais de pontuao, etc. 4.2 Cdigos ASCII e EBCDIC O cdigo de 7 bits o ASCII American Standard Code for Information Interchange (Cdigo Padro Americano para Troca de Informao) utilizado nos PCs, nas mquinas UNIX , etc. J o cdigo de 8 bts EBCDIC Extended Binary-Coded Decimal Interchange Code (Cdigo Ampliado de Intercmbio Binrio-Codificado-Decimal) utilizado nos Mainframes (grandes computadores ). A tabela a seguir mostra alguns destes caracteres: CARACTERE Espao ! # $ 0 1 2 3 4 5 6 7 8 9 A B C D X Y Z ASCII 010 0000 010 0001 010 0010 010 0011 010 0100 011 0000 011 0001 011 0010 011 0011 011 0100 011 0101 011 0110 011 0111 011 1000 011 1001 100 0001 100 0010 100 0011 100 0100 101 1000 101 1001 101 1010 EBCDIC 0100 0000 0101 1010 0111 1111 0111 1011 0101 1011 1111 0000 1111 0001 1111 0010 1111 0011 1111 0100 1111 0101 1111 0110 1111 0111 1111 1000 1111 1001 1100 0001 1100 0010 1100 0011 1100 0100 1110 0111 1110 1000 1110 1001
5. Bibliografia
Princpos Digitais, Roger L. Tokheim, Makron Books, 1996 Lgica e lgebra de Boole, Jacob Daghlian, Editora Atlas, 1995 Organizao Estruturada de Comutadores, Andrew S. Tanenbaum, Prentice/Hall do Brasil, 1992
19
Anexo I
Matrizes de Tabelas-Verdade
Tabela de 2 variveis AB Y 00 01 10 11 Tabela de 3 variveis ABC Y 000 001 010 011 100 101 110 111 Tabela de 4 variveis ABCD Y 0000 0001 0010 0011 0100 0101 0110 0111 ABCD Y 1000 1001 1010 1011 1100 1101 1110 1111
Tabela de 5 variveis ABCDE Y 00000 00001 00010 00011 00100 00101 00110 00111 ABCDE Y 01000 01001 01010 01011 01100 01101 01110 01111 ABCDE Y 10000 10001 10010 10011 10100 10101 10110 10111 ABCDE Y 11000 11001 11010 11011 11100 11101 11110 11111
20