Carregar apresentação
A apresentação está carregando. Por favor, espere
1
DCC 001 Programação de Computadores
Aula Expositiva Bits e Códigos 2.2 Circuitos Combinatórios Álgebra de Boole Portas Lógicas Aritmética com portas lógicas Síntese de Circuitos Combinatórios Comparação de Binários sem sinal DCC 001 Programação de Computadores 2º Semestre de 2011 Prof. Osvaldo Carvalho UFMG DCC
2
Bits e Códigos UFMG DCC
3
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 DCC
4
Representação de Caracteres: Código ASCII – 7 bits
UFMG DCC
5
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 DCC
6
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 DCC
7
Notação Arábica em base Binária, sem Sinal
Decimal 123 pode ser representado pelos 7 bits , sem sinal UFMG DCC
8
Conversão Decimal-binário usando Tabela de Potências de 2
UFMG DCC
9
RGB – Red, Green, Blue Níveis de vermelho, verde e azul são representados como binários sem sinal UFMG DCC
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: e UFMG DCC
11
Binários Negativos com Deslocamento
Sem Sinal Bits c/ Deslocamento 000 -3 1 001 -2 2 010 -1 3 011 4 100 5 101 6 110 7 111 UFMG DCC
12
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 DCC
13
Complemento de 2 com 3 bits
Valor = -4b2 + 2b1 +b0 UFMG DCC
14
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 DCC
15
Complemento de 2 com 3 bits
010 (210) invertendo os bits: 101 (510) somando 1: 110 (610) UFMG DCC
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 UFMG DCC
17
IEEE 754 para 32 bits Expoente Mantissa normalizada Sinal
UFMG DCC
18
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 DCC
19
Exemplo de número IEEE 754 de 32 bits
Sinal positivo Significando Valor Expoente UFMG DCC
20
Padrão IEEE 754 Valores 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 DCC
21
Padrão IEEE 754 Valores 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 DCC
22
Álgebra de Boole UFMG DCC
23
Bits e Álgebra de Boole George Boole Inglaterra, 1820-1898
UFMG DCC
24
NÃO (NOT) a NOT a 1 UFMG DCC
25
E (AND) a b a AND b 1 UFMG DCC
26
OU (OR) a b a OR b 1 UFMG DCC
27
Portas NOT, AND, OR Arquivo NOT_AND_OR.circ Porta NOT Porta AND
Porta OR Entrada Saída Arquivo NOT_AND_OR.circ UFMG DCC
28
Expressões Booleanas Compactas
a’ denota NOT a a + b denota a OR b ab ou a.b denota a AND b ab + a’b’ , (a + b)’ são exemplos de expressões booleanas, ou expressões lógicas UFMG DCC
29
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 DCC
30
Transistores e Portas Lógicas
UFMG DCC
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 DCC
32
Importantes porque sua implementação com transistores é mais simples
Portas NAND e NOR Importantes porque sua implementação com transistores é mais simples a NAND b = (a.b)’ a NOR b = (a+b)’ UFMG DCC
33
AND, NAND, OR, NOR 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 UFMG DCC
34
Transistor como Interruptor
Vamos convencionar: 1 – Voltagem alta 0 – Voltagem baixa (terra) Controle alto, condutor perfeito: Voltagem na entrada necessariamente igual à saída Controle baixo, isolante perfeito: entrada pode ser diferente da saída Voltagem na Entrada Voltagem de Controle Voltagem na Saída UFMG DCC
35
Porta NOT 1 transistor 1 Fonte V= 5 (voltagem alta) a’ 1 a Terra V= 0
Terra V= 0 (voltagem baixa) UFMG DCC
36
Porta NOT 1 transistor 1 Fonte V= 5 (voltagem alta) a’ a 1 Terra V= 0
a 1 Terra V= 0 (voltagem baixa) UFMG DCC
37
Porta NOR 2 transistores
1 Fonte (a + b)’ 1 a b Terra UFMG DCC
38
Porta NOR 2 transistores
1 Fonte (a + b)’ a 1 b Terra UFMG DCC
39
Porta NOR 2 transistores
1 Fonte (a + b)’ a b 1 Terra UFMG DCC
40
Porta NOR 2 transistores
1 Fonte (a + b)’ a 1 b 1 Terra UFMG DCC
41
Porta NAND 2 transistores
1 Fonte (a.b)’ 1 a b Terra UFMG DCC
42
Porta NAND 2 transistores
1 Fonte (a.b)’ 1 a b 1 Terra UFMG DCC
43
Porta NAND 2 transistores
1 Fonte (a.b)’ 1 a 1 b Terra UFMG DCC
44
Porta NAND 2 transistores
1 Fonte (a.b)’ a 1 b 1 Terra UFMG DCC
45
Porta AND 3 transistores
Fonte Fonte a.b a 1 b Terra Terra NAND NOT UFMG DCC
46
Circuitos Combinatórios Soma de Binários de 1 bit
UFMG DCC
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 DCC
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 UFMG DCC
49
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 DCC
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 UFMG DCC
51
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 DCC
52
Circuito Somador de 2 variáveis de 1 bit: Entradas e Saídas
1 bit cada a b Circuito Somador 1 bit Saídas Notação comum para conjuntos de bits: 0 é o índice do bit menos significativo s1 s0 UFMG DCC
53
Tabela da Verdade para Somador de 2 variáveis de 1 bit
Saídas: 2 funções lógicas das mesmas variáveis Entradas Todos os valores possíveis para as entradas Resultados da soma em binário sem sinal UFMG DCC
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) UFMG DCC
55
Obtendo um Circuito a partir da Tabela da Verdade
Passo 1: conseguir uma expressão lógica equivalente à tabela da verdade Passo 2: construir o circuito equivalente à expressão lógica UFMG DCC
56
Expressões equivalentes a uma Tabela da Verdade
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) 1 UFMG DCC
57
Cobertura dos 1’s de uma Função Booleana
x y f(x,y) 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 DCC
58
Expressões Lógicas para Somador de 2 variáveis de 1 bit
s0 = a’b + ab’ s1 = ab UFMG DCC
59
Circuito Soma Binária de 1 bit
arquivo Soma_1_bit.circ ab a’b ab’ UFMG DCC
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! UFMG DCC
61
Soma de Binários com n Bits
UFMG DCC
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. UFMG DCC
63
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 DCC
64
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 DCC
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 UFMG DCC
66
Feita coluna por coluna;
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 seguinte UFMG DCC
67
Soma de Binários de vários bits: Exemplo
= ? “Vai-Um” 1 Parcelas Soma UFMG DCC
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 DCC
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) vem-um vai-um SC a soma b UFMG DCC
70
Somador em Cascata Circuito Soma-Completa
Igual a 1 quando a soma tiver 5 bits vem-um do bit menos significativo é zero UFMG DCC
71
Soma Binária de 3 bits (Soma Completa) Tabela da Verdade
soma = a’b’v + a’bv’ + ab’v’ + abv a b vem-um soma vai-um 1 vai-um = a’bv + ab’v + abv’ + abv UFMG DCC
72
Síntese de Circuitos Combinatórios
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 DCC
73
Circuito Soma Completa
arquivo Somador4bits.circ UFMG DCC
74
Somador 4 bits arquivo Somador4bits.circ UFMG DCC
75
Comparação de Binários com n Bits
UFMG DCC
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 UFMG DCC
77
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 DCC
78
Comparação – Diferença no quarto bit mais significativo
Antes de qualquer comparação, abIguais = 1 UFMG DCC
79
Comparação – Diferença no primeiro bit mais significativo
UFMG DCC
80
Comparação – Todos os bits iguais
UFMG DCC
81
Comparador 1 bit Bit corrente a Módulo Amaior Comparador b de 1 bit
Bmaior bMaior ABiguais abIguais Vêm do comparador à esquerda Vão para o comparador à direita UFMG DCC
82
Comparador 4 bits Entrada b Entrada a Para o bit mais significativo,
aMaior = bMaior = 0, e abIguais = 1 UFMG DCC
83
Comparador 1 bit Tabela da Verdade
Estas saídas vão para a coluna à direita Estas entradas vêm da coluna à esquerda “x” é usado quando a combinação de entradas nunca ocorre – o Logisim simplifica o circuito São 2^5 = 32 linhas na tabela UFMG DCC
84
Comparador 1 bit Circuito
Arquivo Compare_4_bits.circ UFMG DCC
85
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 DCC
86
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 DCC
Apresentações semelhantes
© 2024 SlidePlayer.com.br Inc.
All rights reserved.