A apresentação está carregando. Por favor, espere

A apresentação está carregando. Por favor, espere

DCC 001 Programação de Computadores

Apresentações semelhantes


Apresentação em tema: "DCC 001 Programação de Computadores"— Transcrição da apresentação:

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


Carregar ppt "DCC 001 Programação de Computadores"

Apresentações semelhantes


Anúncios Google