ufmg dcc001 2011-21 aula expositiva 2 2.1 bits e códigos 2.2 circuitos combinatórios 2.2.1...
TRANSCRIPT
UFMG DCC001 2011-2 1
Aula Expositiva 2
2.1 Bits e Códigos2.2 Circuitos Combinatórios2.2.1 Álgebra de Boole2.2.2 Portas Lógicas2.2.4 Aritmética com portas lógicas2.2.5 Síntese de Circuitos Combinatórios2.2.6 Comparação de Binários sem sinal
DCC 001Programação de Computadores
2º Semestre de 2011Prof. Osvaldo Carvalho
Bits e Códigos
UFMG DCC001 2011-1 2
Bits e Códigos
Dados representam informação: precisam ser interpretados
Interpretaço pode ser estabelecida por código
Cada um pode criar o código que quiser, mas aceitação do código determina: Facilidade de comunicação Capacidade de armazenamento de
informações Capacidade de conversão entre
representações Eficiência de manipulação de dados
UFMG DCC001 2011-2 3
UFMG DCC001 2011-2 4
Representação de Caracteres: Código ASCII – 7 bits
Caractere Código DecimalEnd of Transmission 0000100 4
Line Feed 0001010 10Space 0100000 32
( 0101000 40+ 0101011 430 0110000 481 0110001 492 0110010 503 0110011 51A 1000001 65B 1000010 66C 1000011 67a 1100001 97b 1100010 98c 1100011 99
Código ASCII Estendido e Código Unicode
Código ASCII oficial usa 7 bits: permite apenas 27 = 128 valores distintos
Proposto por norte-americanos, ausência de caracteres acentuados, cedilha etc.
Representação de caracteres acentuados permitida no código ASCII estendido, com 8 bits: permite 256 valores
Código Unicode é versão moderna do ASCII: permite codificar caracteres em todas as línguas conhecidas
UFMG DCC001 2011-2 5
Representação de Números
Representação de números usa sistema arábico em base binária
Para facilidade de processamento de operações aritméticas, números negativos não usam representação de sinal-magnitude; outra codificação é mais simples e eficiente
UFMG DCC001 2011-2 6
Notação Arábica em base Binária, sem Sinal
Decimal 123 pode ser representado pelos 7 bits 1111011, sem sinal
UFMG DCC001 2011-2 7
123 = 1.26 +1.25 +1.24 +1.23 +0.22 +1.21 +1.20.
1111011
Conversão Decimal-binário usando Tabela de Potências de 2
UFMG DCC001 2011-2 8
n 0 1 2 3 4 5 6 7 8 9 102n 1 2 4 8 16 32 64 128 256 512 1024
A converter 123 59 27 11 3 1 0Potência de 2 64 32 16 8 2 1
UFMG DCC001 2011-2 9
RGB – Red, Green, Blue
Níveis de vermelho, verde e azul são representados como binários sem sinal
UFMG DCC001 2011-2 10
Binários Negativos usando Sinal-Magnitude
1 bit usado para o sinal Com 8 bits, se reservarmos o bit
mais à esquerda para o sinal, e interpretarmos os bits restantes como a magnitude, podemos representar todos os inteiros entre -127 e +127
Zero tem duas representações: 10000000 e 00000000
UFMG DCC001 2011-2 11
Binários Negativos com Deslocamento
Sem Sinal Bits c/ Deslocamento
0 000 -3
1 001 -2
2 010 -1
3 011 0
4 100 1
5 101 2
6 110 3
7 111 4
Complemento de 2
A absoluta maioria dos computadores utiliza a representação de “complemento de 2” para números inteiros negativos
Como veremos, isto simplifica operações de soma e subtração em circuitos digitais.
Representações em sinal-magnitude e por deslocamento são aplicadas para a notação de ponto flutuante, como veremos a seguir
UFMG DCC001 2011-2 12
Complemento de 2 com 3 bits
UFMG DCC001 2011-2 13
b2 b1 b0
0 0 0 00 0 1 10 1 0 20 1 1 31 0 0 -41 0 1 -31 1 0 -21 1 1 -1
BitsComplemento de 2
Valor
Valor = -4b2 + 2b1 +b0
Complemento de 2: obtendo o complemento
Se n está representado em complemento de 2, -n é obtido em dois passos: Todos os bits de n são invertidos; Soma-se 1 ao resultado da inversão.
UFMG DCC001 2011-2 14
Complemento de 2 com 3 bits
UFMG DCC001 2011-2 15
b2 b1 b0
0 0 0 00 0 1 10 1 0 20 1 1 31 0 0 -41 0 1 -31 1 0 -21 1 1 -1
BitsComplemento de 2
Valor 010 (210)
invertendo os bits:
101 (510)
somando 1:110 (610)
UFMG DCC001 2011-2 16
Ponto Flutuante
Utiliza notação científica com potências de 2 Existe um padrão mundial, o IEEE 754
32 bits, ou precisão simples 1 bit de sinal, 8 de expoente, 23 de mantissa (ou
significando) 64 bits, ou precisão dupla
1 bit de sinal, 11 de expoente, 52 de mantissa Expoentes negativos são representados por
deslocamento Nós voltaremos a estudar esta representação,
que tem consequências sobre erros de arredondamento
IEEE 754 para 32 bits
UFMG DCC001 2011-2 17
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
0 0 1 1 1 1 1 1 1 1 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
Expoente
MantissanormalizadaSinal
Notação Científica Normalizada
• 6,02 x 1023, 602 x 1021 ou 0,00602 x 1026 ?
• A primeira forma é normalizada, com um único algarismo diferente de zero antes da vírgula
• Em binário, o algarismo diferente de zero a ser colocado antes da vírgula é sempre 1, e pode ser implícito
UFMG DCC001 2011-2 18
Exemplo de número IEEE 754 de 32 bits
UFMG DCC001 2011-2 19
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
0 1 0 0 1 1 1 1 1 1 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
12
8
0 0 16
8 4 2 1 0,5
0 0,1
25
0 0,0
31
25
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
15932
1,65625
7113539584
Expoente
Significando
Valor
Sinal positivo
Padrão IEEE 754Valores Especiais
Expoentes com todos os bits iguais a 1 ou todos os bits iguais a zero têm interpretações especiais
Zero é representado por expoente e mantissa iguais a zero (duas representações)
UFMG DCC001 2011-2 20
Padrão IEEE 754Valores Especiais
Expoentes com todos os bits iguais a 1 são usados para representar NaN (Not a Number), +∞ e -∞
Úteis para representar resultados de divisões por zero, funções não definidas para alguns argumentos, etc.
Números com todos os bits do expoente iguais a 0 e mantissa diferente de zero são de-normalizados, e representam números com valor absoluto muito pequeno
UFMG DCC001 2011-2 21
Álgebra de Boole
UFMG DCC001 2011-1 22
UFMG DCC001 2011-2 23
Bits e Álgebra de Boole
George BooleInglaterra,1820-1898
UFMG DCC001 2011-2 24
NÃO (NOT)
a NOT a
0 1
1 0
UFMG DCC001 2011-2 25
E (AND)
a b a AND b
0 0 0
0 1 0
1 0 0
1 1 1
UFMG DCC001 2011-2 26
OU (OR)
a b a OR b
0 0 0
0 1 1
1 0 1
1 1 1
UFMG DCC001 2011-2 27
Portas NOT, AND, OR
Arquivo NOT_AND_OR.cir
c
Porta NOT
Porta AND
Entrada
Porta OR
Saída
UFMG DCC001 2011-2 28
Expressões Booleanas Compactas
a’ denota NOT aa + b denota a OR bab ou a.b denota a AND b
ab + a’b’ , (a + b)’ são exemplos de expressões booleanas, ou expressões lógicas
Equivalência de Expressões
(a’)’= a a+1 = 1; a+0 =a a.1 = a; a.0 = 0 a + (b+c) = (a+b)+c = a + b + c a = a+a; a = a.a ab + ab’ = a
UFMG DCC001 2011-2 29
Transistores e Portas Lógicas
UFMG DCC001 2011-1 30
UFMG DCC001 2011-2 31
Transistores e Portas Lógicas
Transistores são a base para construção de circuitos compactos e rápidos: A tecnologia atual (2010) permite colocar
1,2 bilhões de transistores em um chip de 1,6 cm de lado
O tempo de reação a mudanças nas entradas é muito pequeno
Transistores podem ser usados para amplificar sinais mas, em circuitos digitais, funcionam essencialmente como interruptores
UFMG DCC001 2011-2 32
Portas NAND e NOR
Importantes porque sua implementação com transistores é mais simples
a NAND b = (a.b)’
a NOR b = (a+b)’
AND, NAND, OR, NOR
UFMG DCC001 2011-2 33
AND(a,b) NAND(a,b)
Só é igual a 1 quando a e b são iguais a 1
Só é igual a 0 quando a e b são iguais a 1
OR(a,b) NOR(a,b)
Só é igual a 0 quando a e b são iguais a 0
Só é igual a 1 quando a e b são iguais a 0
Vamos convencionar: 1 – Voltagem alta 0 – Voltagem baixa (terra)
UFMG DCC001 2011-2 34
Transistor como Interruptor
Controle alto, condutorperfeito:Voltagem na entrada necessariamente igual à saída
Controle baixo, isolanteperfeito: entrada podeser diferente da saída
Voltagemna Entrada
Voltagemna Saída
Voltagemde Controle
UFMG DCC001 2011-2 35
Porta NOT 1 transistor
a
a’
Terra V= 0 (voltagem baixa)
0
1
1
Fonte V= 5 (voltagem alta)
UFMG DCC001 2011-2 36
Porta NOT 1 transistor
a
a’
Terra V= 0 (voltagem baixa)
1
0
Fonte V= 5 (voltagem alta)
1
UFMG DCC001 2010-2 37
Porta NOR 2 transistores
1
1
0
0
a
b
(a + b)’
Terra
Fonte
UFMG DCC001 2010-2 38
Porta NOR 2 transistores
1
0
1
0
a
b
(a + b)’
Terra
Fonte
UFMG DCC001 2010-2 39
Porta NOR 2 transistores
1
0
0
1
a
b
(a + b)’
Terra
Fonte
UFMG DCC001 2010-2 40
Porta NOR 2 transistores
1
0
1
1
a
b
(a + b)’
Terra
Fonte
UFMG DCC001 2011-2 41
Porta NAND 2 transistores
1
0
0b
(a.b)’
Terra
Fonte1
a
UFMG DCC001 2011-2 42
Porta NAND 2 transistores
1
0
1b
(a.b)’
Terra
Fonte1
a
UFMG DCC001 2011-2 43
Porta NAND 2 transistores
1
1
0b
(a.b)’
Terra
Fonte1
a
UFMG DCC001 2011-2 44
Porta NAND 2 transistores
0
1
1b
(a.b)’
Terra
Fonte1
a
UFMG DCC001 2011-2 45
Porta AND 3 transistores
1
0b
Terra
Fonte
a
a.b0
Fonte
Terra
NAND NOT
Circuitos CombinatóriosSoma de Binários de 1 bit
UFMG DCC001 2011-1 46
UFMG DCC001 2011-2 47
Circuitos Combinatórios
Circuitos combinatórios são circuitos digitais cuja saída só depende dos valores de suas entradas
Na próxima aula veremos circuitos sequenciais, cuja saída depende das entradas e também de dados armazenados em memórias
UFMG DCC001 2011-2 48
Circuitos Lógicos e Expressões Lógicas
Não é difícil acreditar que podemos fazer circuitos para uma expressão lógica qualquer como a’(b’+c)(ca)’
a’
(ca)’
b’+c
Circuitos Lógicos e Expressões Lógicas
Mas podemos fazer circuitos que fazem contas?
Todos sabemos que computadores fazem contas, e que a resposta é afirmativa. Resta saber como!
Vamos começar por um problema simples: soma de dois inteiros de 1 bit
UFMG DCC001 2011-2 49
UFMG DCC001 2011-2 50
Soma de 2 variáveis de 1 bit - 1
Queremos construir um circuito lógico para somar duas variáveis de um bit, codificados como binários sem sinal: 0 vale Zero 1 vale Um
Na base dez, o resultado pode ser 0, 1 ou 2
Soma de 2 variáveis de 1 bit – 2
O resultado, codificado como binário sem sinal, é 0, 1 ou 10
Ou seja, são necessários 2 bits para representar o resultado da soma de duas variáveis de 1 bit
Somar significa: obter a representação em binário sem sinal da soma das entradas, também codificadas como binários sem sinal
UFMG DCC001 2011-2 51
UFMG DCC001 2011-2 52
Circuito Somador de 2 variáveis de 1 bit: Entradas e Saídas
Circuito Somador1 bit
a b
s0s1
Entradas1 bit cada
Notação comum para conjuntos de bits: 0 é o índice do bit menos significativo
Saídas
UFMG DCC001 2011-2 53
Tabela da Verdade paraSomador de 2 variáveis de 1 bit
Entradas
Saídas:2 funções lógicas das mesmas variáveis
Todos os valores possíveis para as entradas
Resultados dasoma embinário semsinal
UFMG DCC001 2011-2 54
Tabela da Verdade
Tabela para especificação de funções lógicas
Especifica saídas para todas as combinações possíveis para as variáveis de entrada
(Já usamos tabelas da verdade para especificar as funções NOT, AND e OR)
Obtendo um Circuito a partir da Tabela da Verdade
UFMG DCC001 2011-2 55
Passo 1: conseguir uma expressão lógica equivalente à tabela da verdade
Passo 2: construir o circuito equivalente à expressão lógica
Expressões equivalentes a uma Tabela da Verdade
UFMG DCC001 2011-2 56
Uma expressão lógica e uma tabela da verdade são equivalentes quando, para qualquer combinação de valores das variáveis de entrada, os valores da função e da expressão são iguais:
f(x,y) = x’y’ + xy
x y f(x,y)
0 0 1
0 1 0
1 0 0
1 1 1
Cobertura dos 1’s de uma Função Booleana
UFMG DCC001 2011-2 57
x y f(x,y)
0 0 1
0 1 0
1 0 0
1 1 1
x’y’ + xy
x’y’ é igual a 1 se e somente se x=0 e y=0 xy é igual a 1 se e somente se x=1 e y=1 x’y’ + xy “cobre” exatamente a função
desejada
UFMG DCC001 2011-2 58
Expressões Lógicas para Somador de 2 variáveis de 1 bit
s0 = a’b + ab’
s1 = ab
UFMG DCC001 2011-2 59
Circuito Soma Binária de 1 bit
arquivo Soma_1_bit.circ
ab
a’b
ab’
UFMG DCC001 2011-2 60
Funções Lógicas podem fazer Aritmética
Produzimos um circuito lógico com duas entradas de 1 bit representando binários sem sinal, e que produz em sua saída dois bits representando a soma das entradas em binário sem sinal!
Conseguimos fazer “cálculos” com as funções lógicas NOT, AND e OR!
Soma de Binários com n Bits
UFMG DCC001 2011-1 61
UFMG DCC001 2011-2 62
Soma de Binários de Vários Bits - 1
Vamos agora considerar a soma de números binários com vários bits cada um
Em princípio poderíamos construir a tabela da verdade para a soma e deduzir a expressão lógica, mas…
Para a soma de dois inteiros de 32 bits, a tabela da verdade teria 264 entradas.
Tempo para tratar 264 itens
Um nano-segundo é o tempo de reação de uma porta lógica
Um ano tem nano-segundos Temos E portanto,
Temos então linhas a analisar;
Com um nano-segundo por linha, 3 milênios!
UFMG DCC001 2011-2 63
Soma de Binários de Vários Bits - 2
Temos que adotar outro enfoque Primeiramente vamos examinar
como nós, humanos, fazemos uma soma em binário
Depois, vamos construir um somador de forma modular, explorando regularidades no processo de soma
UFMG DCC001 2011-2 64
UFMG DCC001 2011-2 65
Somas em decimal
Feita coluna por coluna; quando a soma de dois algarismos excede 9, o resultado daquela coluna é somente o dígito mais significativo, e “vai-um” para a coluna seguinte
Vai-um 1 1a 2 7 7 6b 4 7 9 1
a+b 7 5 6 7
0
Somas em binário
Feita coluna por coluna;
Quando a soma de dois algarismos excede 1, o resultado daquela coluna é somente o dígito mais significativo, e “vai-um” para a coluna seguinteUFMG DCC001 2011-2 66
UFMG DCC001 2011-2 67
Soma de Binários de vários bits: Exemplo
1 0 1 1 1 0 0
1 0 1 1 1 0 1
1 0 0 1 1 1 0
1 0 1 0 1 0 1 1
“Vai-Um”
Parcelas
Soma
1011101+1001110 = ?
UFMG DCC001 2011-2 68
Soma de Binários de vários bits
Vamos usar esta aritmética para construir um circuito
A idéia é construir um módulo que faça a operação de uma das colunas da soma
O somador terá tantos deste módulo quantas forem as colunas, ou seja, quantos forem os bits das parcelas
UFMG DCC001 2011-2 69
Módulo: Circuito “Soma Completa”
Entradas os dois bits de uma coluna
das parcelas a entrada “vem-um”,
alimentada pela saída “vai-um” da coluna à direita
Saídas um bit de resultado um bit de “vai-um” (que será
ligado à entrada “vem-um” da coluna à esquerda)
SCvai-um
soma
vem-um
ab
UFMG DCC001 2011-2 70
Somador em Cascata
vem-um do bit menos significativo é zero
Igual a 1 quando a soma tiver 5 bits
CircuitoSoma-Completa
UFMG DCC001 2011-2 71
Soma Binária de 3 bits (Soma Completa)Tabela da Verdade
a b vem-um soma vai-um
0 0 0 0 0
0 0 1 1 0
0 1 0 1 0
0 1 1 0 1
1 0 0 1 0
1 0 1 0 1
1 1 0 0 1
1 1 1 1 1
vai-um = a’bv + ab’v + abv’ + abv
soma = a’b’v + a’bv’ + ab’v’ + abv
Síntese de Circuitos Combinatórios
UFMG DCC001 2011-2 72
O processo de cobertura de 1’s de uma tabela da verdade para geração de um circuito pode ser automatizado
O Logisim faz isso, e ainda consegue simplificar o circuito
UFMG DCC001 2011-2 73
Circuito Soma Completa
arquivo Somador4bits.circ
UFMG DCC001 2011-2 74
Somador 4 bits
arquivo Somador4bits.circ
Comparação de Binários com n Bits
UFMG DCC001 2011-1 75
UFMG DCC001 2011-2 76
Comparação de binários sem sinal
Circuito desejado: Entradas: a e b, dois binários sem sinal Saídas: 3 bits indicando o resultado da
comparação entre a e b
a b
Comparador
a < b a = b a > b
Comparação de binários sem sinal
Aqui também temos problemas para o uso da Tabela da Verdade quando comparamos inteiros de 32 bits (por exemplo)
Vamos usar o mesmo enfoque utilizado na soma: verificar como nós fazemos a comparação, e procurar dividir o problema
É fácil ver que, para comparar dois binários sem sinal, comparamos bit a bit, a partir do mais significativo; na primeira diferença, a parcela com o bit igual a 1 é a maior
UFMG DCC001 2011-2 77
Comparação – Diferença no quarto bit mais significativo
UFMG DCC001 2011-2 78
a 1 1 1 1 1 0 0 0b 1 1 1 0 1 1 1 0
aMaior 0 0 0 0 1 1 1 1 1abIguais 1 1 1 1 0 0 0 0 0bMaior 0 0 0 0 0 0 0 0 0
Antes de qualquer comparação, abIguais = 1
Comparação – Diferença no primeiro bit mais significativo
UFMG DCC001 2011-2 79
a 0 1 1 1 1 0 0 0b 1 1 1 0 1 1 1 0
aMaior 0 0 0 0 0 0 0 0 0abIguais 1 0 0 0 0 0 0 0 0bMaior 0 1 1 1 1 1 1 1 1
Comparação – Todos os bits iguais
UFMG DCC001 2011-2 80
a 1 1 1 0 1 0 1 0b 1 1 1 0 1 0 1 0
aMaior 0 0 0 0 0 0 0 0 0abIguais 1 1 1 1 1 1 1 1 1bMaior 0 0 0 0 0 0 0 0 0
Comparador 1 bit
UFMG DCC001 2011-2 81
Módulo Comparador
de 1 bit
ab
aMaior
bMaior
abIguais
Amaior
Bmaior
ABiguais
Bit corrente
Vêm do comparador à esquerda
Vão para o comparador à direita
UFMG DCC001 2011-2 82
Comparador 4 bits
Entrada aEntrada b
Para o bit mais significativo,aMaior = bMaior = 0, e abIguais = 1
UFMG DCC001 2011-2 83
Comparador 1 bitTabela da Verdade
Estas entradas vêm da coluna à esquerda
“x” é usado quando a combinação de entradas nunca ocorre – o Logisim simplifica o circuito
Estas saídas vão para a coluna à direita
São 2^5 = 32 linhas na tabela
UFMG DCC001 2011-2 84
Comparador 1 bitCircuito
Arquivo Compare_4_bits.circ
Resumo
Bits exigem códigos para ter significado Códigos importantes incluem ASCII,
binário sem sinal, complemento de 2, e IEEE 754.
Toda transformação de informação feita por um processador é uma composição das operações básicas NOT, AND e OR da Álgebra de Boole
Expressões lógicas e circuitos combinatórios equivalentes podem ser extraídos de tabelas da verdade
UFMG DCC001 2011-2 85
Resumo
Circuitos para soma ou comparação de duas parcelas de 1 bit podem ser obtidos por tabelas da verdade
Para somar ou comparar parcelas de 32 bits (p.ex.), é preciso montar circuitos em cascata, com transformações graduais da informação.
UFMG DCC001 2011-2 86