aulas arquitetura de computadores parte 1

43
Prof.: Ricardo Gonçalves de Aguiar Material de Apoio ~ 1 ~ Arquitetura de Computadores Prof.: Ricardo Gonçalves de Aguiar Plano de Ensino Estado da arte do computador, definições e aplicações Conceitos de sistemas de numeração, conversão de bases, operações com binário Portas lógicas Memórias e armazenamento Arquitetura de processadores, chip sets Bios Linguagem de alto nível DMA Periféricos Processamento paralelo Processamento distribuído Lógica aplicada à programação Objetivos Apresentar a arquitetura computacional com conhecimentos sobre a lógica binária, critérios de projetos, funcionalidades e aplicações. Bibliografia BÁSICA: STALLINGS, Willian. Arquitetura e Organização de Computadores, 5ª Edição. Prentice Hall. São Paulo, 2006. TANENBAUM. Andrew S. Organização Estruturada de computadores. Edição 5ª. LTC. Rio de Janeiro, 2007. MACHADO, Francis B., MAIA, Luiz P. Arquitetura de Sistemas Operacionais. Edição 4ª. LTC. Rio de Janeiro, 2007. BIBLIOGRAFIA COMPLEMENTAR: WEBER, Raul Fernando. Arquitetura de computadores pessoais, Edição 2ª. Sagra Luzzatto. Porto Alegre, 2003. WEBER, Raul Fernando. Fundamentos de Arquitetura de Computadores, Edição 3ª, Porto Alegre, Sagra Luzzatto, 2004.

Upload: vitinhoops

Post on 21-Jun-2015

1.919 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Aulas arquitetura de computadores parte 1

Prof.: Ricardo Gonçalves de Aguiar Material de Apoio

~ 1 ~

Arquitetura de Computadores Prof.: Ricardo Gonçalves de Aguiar

Plano de Ensino

• Estado da arte do computador, definições e aplicações • Conceitos de sistemas de numeração, conversão de bases, operações com

binário • Portas lógicas • Memórias e armazenamento • Arquitetura de processadores, chip sets • Bios • Linguagem de alto nível • DMA • Periféricos • Processamento paralelo • Processamento distribuído • Lógica aplicada à programação

Objetivos Apresentar a arquitetura computacional com conhecimentos sobre a lógica binária, critérios de projetos, funcionalidades e aplicações.

Bibliografia BÁSICA:

STALLINGS, Willian. Arquitetura e Organização de Computadores, 5ª Edição. Prentice Hall. São Paulo, 2006.

TANENBAUM. Andrew S. Organização Estruturada de computadores. Edição 5ª. LTC. Rio de Janeiro, 2007.

MACHADO, Francis B., MAIA, Luiz P. Arquitetura de Sistemas Operacionais. Edição 4ª. LTC. Rio de Janeiro, 2007.

BIBLIOGRAFIA COMPLEMENTAR:

WEBER, Raul Fernando. Arquitetura de computadores pessoais, Edição 2ª. Sagra Luzzatto. Porto Alegre, 2003.

WEBER, Raul Fernando. Fundamentos de Arquitetura de Computadores, Edição 3ª, Porto Alegre, Sagra Luzzatto, 2004.

Page 2: Aulas arquitetura de computadores parte 1

Prof.: Ricardo Gonçalves de Aguiar Material de Apoio

~ 2 ~

Forma de Avaliação São três notas: Avaliação 1 (AV1), avaliação 2 (AV2) e avaliação 3 (AV3). A média final é obtida através da média das duas maiores notas. Para que o aluno seja aprovado, a média deve ser maior ou igual a 6,0

Os componentes básicos de um computador A função de um computador é processar dados. Para processá-los é preciso movê-los até a unidade central de processamento, armazenar resultados intermediários e finais em locais onde eles possam ser encontrados mais tarde e controlar estas funções de transporte, armazenamento e processamento. Portanto, tudo que um computador faz pode ser classificado como uma destas quatro ações elementares:

processar, armazenar,

mover dados, ou controlar estas atividades

Por mais complexas que pareçam as ações executadas por um computador, elas nada mais são que combinações destas quatro funções básicas. A função de mover dados é executada através do fluxo da corrente elétrica ao longo de condutores que ligam os pontos de origem e destino e não depende de elementos ativos. As funções de controle são igualmente executadas através de pulsos de corrente, ou "sinais", propagados em condutores elétricos (estes pulsos são interpretados pelos componentes ativos, fazendo-os atuar ou não dependendo da presença ou ausência dos sinais). Portanto estas duas funções, transporte e controle, para serem executadas só dependem da existência de condutores elétricos (fios, cabos, filetes metálicos nas placas de circuito impresso, etc.) e não exigem o concurso de componentes ativos. Restam as funções de armazenar e processar dados. Processar dados consiste basicamente em tomar decisões lógicas do tipo "faça isso em função daquilo". Por exemplo: "compare dois valores e tome um curso de ação se o primeiro for maior, um curso diferente se ambos forem iguais ou ainda um terceiro curso se o primeiro for menor". Todo e qualquer processamento de dados, por mais complexo que seja, nada mais é que uma combinação de ações elementares baseadas neste tipo de tomada de decisões simples. O circuito eletrônico elementar capaz de tomar decisões é denominado "porta lógica". Armazenar dados consiste em manter um dado em um certo local enquanto ele for necessário, de tal forma que ele possa ser recuperado quando o sistema precisar dele. O circuito lógico elementar capaz de armazenar um dado

Page 3: Aulas arquitetura de computadores parte 1

Prof.: Ricardo Gonçalves de Aguiar Material de Apoio

~ 3 ~

(expresso sob a forma do elemento mínimo de informação, o "bit", que pode exprimir apenas os valores numéricos "um" ou "zero" ou ainda os valores lógicos equivalentes, "verdadeiro" ou "falso") é a célula de memória – um dispositivo capaz de assumir um dentre dois estados possíveis e manter-se nesse estado até que alguma ação externa venha a alterá-lo (dispositivo "bi-estável"). Tendo isto em vista, pode-se concluir que todo computador digital, por mais complexo que seja, pode ser concebido como uma combinação de um número finito de apenas dois dispositivos básicos, portas lógicas e células de memória, interligados por condutores elétricos. Resta ver como é possível implementar estes dispositivos usando componentes eletrônicos.

Sistema binário Os computadores utilizam internamente o sistema binário (sistema numérico posicional de base 2). A característica mais notável deste sistema numérico é a utilização exclusiva dos algarismos "1" e "0", os chamados "dígitos binários". Através do sistema binário, todas as quantidades e todos os valores de quaisquer variáveis poderão ser expressos usando uma combinação de um determinado número de dígitos binários, ou seja, usando apenas os algarismos "0" e "1". O uso do sistema binário pelos computadores decorre do fato dessas máquinas se basearem em circuitos elétricos ou eletrônicos. Isto porque a grande maioria dos componentes de circuitos elétricos podem assumir apenas um dentre dois estados. Por exemplo: interruptores podem estar fechados ou abertos,

capacitores carregados ou descarregados, lâmpadas acesas ou

apagadas, circuitos energizados ou desenergizados e assim por

diante.

O uso exclusivo dos algarismos "1" e "0" nos circuitos internos dos computadores pode levar a crer que eles apenas servem para resolver problemas muito específicos, cujas grandezas de entrada e saída assumam apenas dois valores e que portanto sua utilização há de ser extremamente limitada. Esta conclusão é falsa. Na verdade, toda e qualquer grandeza do mundo real pode ser representada no sistema binário. Para que um dado ou informação possa ser processado por um computador, basta que ele seja codificado de tal forma que possa ser "modelado" através de um conjunto de números. Estes números serão então expressos no sistema binário e processados pelo computador. O processo de conversão das grandezas do mundo real em quantidades expressas no sistema binário chama-se "digitalização" (por exemplo: o dispositivo

Page 4: Aulas arquitetura de computadores parte 1

Prof.: Ricardo Gonçalves de Aguiar Material de Apoio

~ 4 ~

denominado "escaner" nada mais é que um digitalizador de imagens, enquanto o processo de gravação de um CD de áudio é a digitalização de sons). Mas a digitalização é apenas o passo inicial: transformar as grandezas do mundo real em números e exprimi-las no sistema binário. O passo seguinte é escolher uma ferramenta para trabalhar com os valores assim expressos. Esta ferramenta é a lógica digital.

Lógica digital Todo o raciocínio lógico é baseado na tomada de uma decisão a partir do cumprimento de determinadas condições. Inicialmente tem-se os dados de entrada e uma condição (ou uma combinação de condições). Aplica-se a condição aos dados de entrada para decidir quais são os dados de saída. A lógica digital não é diferente. Mas apresenta uma peculiaridade: trabalha apenas com variáveis cujos valores alternam exclusivamente entre "um" e "zero", "sim" e "não", "verdadeiro" e "falso" ou quaisquer outras grandezas cujo valor possa assumir apenas um dentre dois estados possíveis (sistema binário). Exemplo: Para entender a lógica digital usemos como exemplo

o estatuto do Clube do Bolinha. A condição é: "Menina não entra".

O dado de entrada é a situação do pretendente em relação à

condição de ser menina. O dado de saída, ou seja, a decisão sobre o

fato do pretendente poder ou não entrar no Clube, é obtido

mediante a aplicação da condição ao dado de entrada. É menina?

Sim ou não? A decisão é "sim" se o pretendente "não" for menina. E

"não" se, "sim", for menina. Este é um exemplo da mais simples das

condições, na qual há apenas um dado de entrada e o dado de

saída é exatamente o oposto dele: um "sim" gera um "não" e um

"não" gera um "sim". Esta condição é representada pela porta lógica

NOT (o advérbio "não" em inglês).

Agora vamos dar um passo adiante. Imaginemos que o Sr.

Bolinha decidiu dar uma festa para os membros do clube, porém

resolveu cobrar o ingresso para cobrir os custos do evento. Portanto,

para entrar, além de ser membro, terá que comprar um ingresso.

Numa situação como essa a condição é mais complexa. Os

dados de entrada agora são dois: a situação do pretendente em

relação ao fato de ser membro do clube (sim ou não) e a posse do

ingresso (sim ou não). Para que o dado de saída seja "sim", ou seja,

Page 5: Aulas arquitetura de computadores parte 1

Prof.: Ricardo Gonçalves de Aguiar Material de Apoio

~ 5 ~

para que o pretendente ingresse na festa, ele tem que cumprir

AMBAS as condições. Não basta ser membro do clube ("sim" para a

primeira condição) se não possui o ingresso ("não" para a segunda).

Nem basta possuir o ingresso ("sim" para a segunda condição) se não

é membro ("não" para a primeira). A decisão é tomada submetendo

os dados de entrada à condição. Para uma decisão "sim" que

garante a entrada na festa é preciso, ao mesmo tempo, "sim", ser

membro do clube e, "sim", dispor do ingresso. Ou seja, a saída

somente será "sim" se ambos os dados de entrada forem "sim". Esta

condição é representada pela porta lógica AND (a conjunção

aditiva "e" em inglês).

Tomemos ainda outro exemplo. Imaginemos que os membros

do clube tenham levado ao Presidente um reclamo: sendo eles

membros, e sendo a festa no clube, por que razão tinham que pagar

ingresso? O Sr. Bolinha considerou o pleito justo, mas alegou que

ainda assim precisaria de recursos para cobrir os custos. Decidiu-se

então abrir o evento à toda a comunidade e não apenas aos

membros do clube, cobrando o ingresso apenas dos que não fossem

membros. Então, para entrar, seria necessário ou ser membro do

clube ou comprar um ingresso. Cumprida qualquer uma das duas

condições, seja qual for, o pretendente poderia entrar,

independentemente da outra. Examinemos a primeira condição.

Comprou ingresso? Sim ou não? Se "sim", a primeira condição está

cumprida e a decisão é "sim", o pretendente pode entrar. Mas

imaginemos que, "não", ele não comprou o ingresso. Examinemos

então a segunda condição. É membro do clube? Sim ou não? Se

"sim", a segunda condição foi cumprida e "sim", ele pode entrar

mesmo sem ingresso. Em um caso como este, para que o dado de

saída seja "sim" basta que um dos dados de entrada seja "sim". Esta

condição é representada pela porta lógica OR (a conjunção

alternativa "ou" em inglês). Em um computador, todas as operações são feitas a partir de tomadas de decisões que, por mais complexas que sejam, nada mais são que combinações

Page 6: Aulas arquitetura de computadores parte 1

Prof.: Ricardo Gonçalves de Aguiar Material de Apoio

~ 6 ~

das três operações lógicas correspondentes às condições acima descritas: NOT, AND e OR. Para tomadas de decisões mais complexas, tudo o que é preciso é combinar estas operações. E para isto é necessário um conjunto de ferramentas capaz de manejar variáveis lógicas. Esse conjunto de ferramentas é a chamada "Álgebra Booleana". Veremos então como operar em binário e qual a importância da álgebra booleana para um computador:

Sistemas de numeração Para entendermos como funciona o sistema de numeração na base dois (sistema binário), temos que entender como funciona um sistema de numeração em uma base geral. A necessidade de criação de números veio com a necessidade de contar, seja o número de animais, alimentos, ou coisas do tipo. Acredita-se que as bases 5, 10 e 20 foram as primeiras a serem criadas por questões naturais como cinco dedos em cada mão, dez dedos nas mãos e vinte dedos nas mãos e nos pés.

Sistema Quinário (Base 5): Tribos Africanas usavam o sistema quinário, provavelmente por possuirmos 5 dedos em cada mão.

Sistema vigesimal (Base 20): Usado pelos Maias e Astecas e pelos Celtas. Sabe-se também que no idioma francês, 80 é "quatrevingt" (quatro vezes vinte) e no sistema monetário francês, 1 franco = 20 sous.

Sistema duo decimal (Base 12): Tem origem no fato de que os 4 dedos da mão (com exceção do polegar) têm 12 falanges. Aplicações:

• Objetos contados em dúzias: ovos, talheres, pratos, canetas, lápis • O ano tem 12 meses • O dia tem 24 (2 x 12) horas • 12 dúzias = 1 grosa • 12 grosas = 1 massa • 1 pé = 12 polegadas (12 x 2,54 cm = 30,48 cm)

Page 7: Aulas arquitetura de computadores parte 1

Prof.: Ricardo Gonçalves de Aguiar

Sistema Sexagesimal (Base 60)

Aplicações:

• subdivisão da hora em 60 minutos; subdivisão do minuto em 60 segundos. • subdivisão de grau em 60 minutos; subdivisão do minuto em 60 segund

Todo sistema posicional utiliza a posição do número para indicar um valor com relação à base utilizada. Exemplo: Na base 60

Na base 10:

Comparando base 10 com base 2

Base 10

0

1

2

3

4

5

Prof.: Ricardo Gonçalves de Aguiar Material de Apoio

~ 7 ~

Sistema Sexagesimal (Base 60)

subdivisão da hora em 60 minutos; subdivisão do minuto em 60 segundos. subdivisão de grau em 60 minutos; subdivisão do minuto em 60 segund

Sistema Posicional:

Todo sistema posicional utiliza a posição do número para indicar um valor com relação à base utilizada.

Na base 60

4 : 23 : 59

285

Comparando base 10 com base 2:

Base 2 Representação da base 2

0 0 �

1 1 �

10 1 � 2� � 0 �

11 1 � 2� � 1 �

100 1 � 2� � 0 � 2� � 0 �

101 1 � 2� � 0 � 2� � 1 �

Material de Apoio

subdivisão da hora em 60 minutos; subdivisão do minuto em 60 segundos. subdivisão de grau em 60 minutos; subdivisão do minuto em 60 segundos.

Todo sistema posicional utiliza a posição do número para indicar um valor

Representação da base 2 � 2 0

� 2 1

� 2 2

� 2 3

� 2 4

� 2 5

Page 8: Aulas arquitetura de computadores parte 1

Prof.: Ricardo Gonçalves de Aguiar Material de Apoio

~ 8 ~

Sistemas usados em Informática:

Sistema Binário (base2):

Sistema Octal (base8):

Sistema Hexadecimal (base16):

Page 9: Aulas arquitetura de computadores parte 1

Prof.: Ricardo Gonçalves de Aguiar Material de Apoio

~ 9 ~

Relação entre as bases:

Binária Octal Decimal Hexadecimal

00000000 0 0 0

00000001 1 1 1

00000010 2 2 2

00000011 3 3 3

00000100 4 4 4

00000101 5 5 5

00000110 6 6 6

00000111 7 7 7

00001000 10 8 8

00001001 11 9 9

00001010 12 10 A

00001011 13 11 B

00001100 14 12 C

00001101 15 13 D

00001110 16 14 E

00001111 17 15 F

00010000 20 16 10

00010001 21 17 11

00010010 22 18 12

00010011 23 19 13

00010100 24 20 14

Representação e Armazenamento:

Bit:

Ficou definido que a menor unidade de informação, no computador, é o bit (dígito binário), e quem inventou a palavra foi um engenheiro belga, Claude Shannon, em sua obra Teoria Matemática da Computação, de 1948. Cada caractere do computador compreende um conjunto de 8 bits que chamamos byte. No entanto, foi necessária a criação de tabelas para que todos os computadores “conversassem” entre si. Chamamos essa tabela de ASCII (American Standard Character for Information Interchange) onde os computadores representam todos os caracteres.

Page 10: Aulas arquitetura de computadores parte 1

Prof.: Ricardo Gonçalves de Aguiar Material de Apoio

~ 10 ~

Menor Valor: (00000000)2 = (0)10 Maior Valor: +(11111111)2 = (255)10

Tabela ASCCI:

Decimal Binário Hex Referência

0 00000000 00 Null - NUL 1 00000001 01 Start of Heading - SOH 2 00000010 02 Start of Text - STX ... ... ... ... 65 01000001 41 A 66 01000010 42 B 67 01000011 43 C ... ... ... ... 97 01100001 61 a 98 01100010 62 b 99 01100011 63 c ... ... ... ...

253 11111101 FD ² 254 11111110 FE ■ 255 11111111 FF

byte:

Embora os termos bit (unidade de informação) e byte (um conjunto de 8 bits) dêem a impressão de ter nascido no mesmo dia, o bit é sete anos mais velho que o byte. Foi a IBM quem inventou o nome byte, em 1956, mas não há registro sobre o inventor, nem sobre sua inspiração. Há quem diga que byte significa binary term e há quem diga que byte significa uma brincadeira com as palavras bit (pedacinho) e bite (morder).

Page 11: Aulas arquitetura de computadores parte 1

Prof.: Ricardo Gonçalves de Aguiar Material de Apoio

~ 11 ~

Kilobyte - 210:

A palavra kilo vem do grego khilioi, que significa mil, logo um kilobyte tem mil bytes, certo? Infelizmente, a informática é simples, mas nem tanto. Um kilobyte tem 1024 bytes. Porque a base de tudo é o número 2, e a capacidade de processamento evolui em múltiplos, sempre dobrando em relação à medida anterior: 4K, 8K, 16K, 32K, 64K, 128K, 256K, 512K. O pulo seguinte, para 1024, dá o valor mais próximo de mil. Portanto, esse kilo de bytes aí já vem com um chorinho... Mas, para quem se liga em matemática, a explicação é que o sistema usa como base o logaritmo 2: o número 1024 corresponde a 2 elevado à décima potência.

Megabyte – 220:

Tamanho de memória correspondente a 1.048.576 bytes, ou 2 elevado à potência 20. O termo mega teve origem no termo grego megas, grande. Daí derivou, por exemplo, megalomania, a chamada mania de grandeza.

Gigabyte – 230: Vulgo giga, equivale a 1.073.741.824 bytes ou o número 2 elevado à potência 30. Uma página normal de um livro tem cerca de 3 000 caracteres, logo um gigabyte seria equivalente a mais de 6 000 livros com 500 páginas cada um. A palavra giga é grega e significa gigante.

Terabyte - 240: Pense um pouquinho: que nome você daria a uma medida 1.024 vezes maior que um gigante? Monstruosa, talvez? Por isso mesmo, a palavra tera vem do grego teras, monstro. Então, só para a gente não se perder, um terabyte são 1.024 gigabytes, ou 1.073.741.824 quilobytes, ou 1.099.511.627.776 bytes 8,192 bilhões de zerinhos e unzinhos, os bits. Ou seja, 2 elevado a potência de 40. E isso vai longe. As próximas palavras que muito em breve vão aparecer nos anúncios de qualquer jornal de domingo, anunciando uma liquidação de micros no armazém da esquina, são o petabyte, o exabyte, o zettabyte e o yottabyte.

Velocidade de ciclo do processador: Quem tem, por exemplo, um daqueles relógios de parede antigos, com pêndulos, notará que o pêndulo faz um vai-e-vem a cada 2 segundos. O relógio, portanto, oscila a velocidade de 0,5 Hz (1 ciclo a cada 2 segundos ou 0,5 ciclo por segundo), ou 0,0000005 megahertz. Hoje em dia, já temos processador com 3 gigahertz (GHz), ou seja, que funcionam a 3 bilhões de ciclos por segundo.

Page 12: Aulas arquitetura de computadores parte 1

Prof.: Ricardo Gonçalves de Aguiar Material de Apoio

~ 12 ~

Exercícios:

1. Basicamente, o que faz um computado? 2. Basicamente do que é composto um computador? 3. Explique a importância do sistema binário para uma máquina digital 4. Como um computador processa dados? Explique. 5. Como funciona um sistema de numeração posicional? 6. Em um sistema posicional vigesimal, quantos símbolos serão utilizados

para representar os números? Dentre esses símbolos quanto vale o símbolo mais alto valor?

7. Explique como um caractere é representado no computador. E um número inteiro?

8. No que é baseada a medida de armazenamento de dados em um computador? Explique.

9. Como é medida a velocidade de um computador? Explique.

Conversão entre sistemas de numeração

Conversão de Binário para Decimal O sistema binário, por ter apenas dois algarismos, conseguimos convertê-lo para decimal usando a base (20, 21, 22, ..., 2n). Lembrando que qualquer número elevado a 0 resulta 1 (50 = 1; 2376790 = 1), como podemos converter o número binário 101101 em decimal? Exatamente da mesma forma que o decimal utilizando a base 2. veja:

Page 13: Aulas arquitetura de computadores parte 1

Prof.: Ricardo Gonçalves de Aguiar Material de Apoio

~ 13 ~

EXERCÍCIOS: Converta para decimal

a) 10011011(2) = ?(10) b) 10001101(2) = ?(10) c) 10110110(2) = ?(10) d) 010011(2) = ?(10) e) 11000000(2) = ?(10) f) 10101001(2) = ?(10) g) 11111111(2) = ?(10) h) 010101(2) = ?(10)

Conversão de decimal para binário

Para converter um número de decimal para binário, uma das formas é dividir o número sucessivamente por 2. O número binário corresponderá ao último resultado da divisão e todos os restos, como veremos no exemplo:

Page 14: Aulas arquitetura de computadores parte 1

Prof.: Ricardo Gonçalves de Aguiar Material de Apoio

~ 14 ~

Exemplo2:

EXERCÍCIOS: Converta para binário

a) 135(10) = ?(2) b) 72(10) = ?(2) c) 37(10) = ?(2) d) 49(10) = ?(2) e) 46(10) = ?(2) f) 186(10) = ?(2)

Conversão de Octal para Decimal

Como podemos converter o número octal 23 em decimal? 23(8) = ?(10) Exatamente da mesma forma que convertemos um binário para decimal, no entanto utilizando a base 8. veja:

Page 15: Aulas arquitetura de computadores parte 1

Prof.: Ricardo Gonçalves de Aguiar Material de Apoio

~ 15 ~

EXERCÍCIOS: Converta para decimal

a) 127(8) = ?(10) b) 202(8) = ?(10) c) 165(8) = ?(10) d) 2(8) = ?(10) e) 51(8) = ?(10) f) 45(8) = ?(10) g) 353(8) = ?(10) h) 010101(8) = ?(10)

Conversão de Decimal para Octal

Para converter um número de decimal para octal, uma das formas é dividir o número sucessivamente por 8. O número octal corresponderá ao último resultado da divisão e todos os restos, como veremos no exemplo:

Exemplo 2:

Page 16: Aulas arquitetura de computadores parte 1

Prof.: Ricardo Gonçalves de Aguiar Material de Apoio

~ 16 ~

Converta para octal

a) 143(10) = ?(8) b) 192(10) = ?(8) c) 54(10) = ?(8) d) 56(10) = ?(8) e) 374(10) = ?(8) f) 37(10) = ?(8) g) 218(10) = ?(8) h) 134(10) = ?(8)

Conversão de Hexadecimal para Decimal

Como podemos converter o número hexadecimal 2DA em decimal? 2DA(16) = ?(10) Exatamente da mesma forma que convertemos um binário, ou um octal para decimal, no entanto utilizando a base 16. veja:

EXERCÍCIOS:

Converta para decimal

a) 8A7(16) = ?(10) b) AF1(16) = ?(10) c) 8B5(16) = ?(10) d) FB(16) = ?(10) e) 1C0A(16) = ?(10) f) 3FF(16) = ?(10) g) 1BC4(16) = ?(10) h) F2A(16) = ?(10)

Page 17: Aulas arquitetura de computadores parte 1

Prof.: Ricardo Gonçalves de Aguiar Material de Apoio

~ 17 ~

Conversão de Decimal para Hexadecimal Para converter um número de decimal para hexadecimal, uma das formas é dividir o número sucessivamente por 16. O número hexadecimal corresponderá ao último resultado da divisão e todos os restos, como veremos no exemplo:

Exemplo 2:

Page 18: Aulas arquitetura de computadores parte 1

Prof.: Ricardo Gonçalves de Aguiar Material de Apoio

~ 18 ~

EXERCÍCIOS: Converta para hexadecimal

a) 1798(10) = ?(16) b) 645(10) = ?(16) c) 54(10) = ?(16) d) 328(10) = ?(16) e) 618(10) = ?(16) f) 37(10) = ?(16) g) 174(10) = ?(16) h) 194(10) = ?(16)

Conversão de Binário para Octal

EXERCÍCIOS: Converta para Octal

a) 10011011(2) = ?(8) b) 010011(2) = ?(8) c) 1011110110(2) = ?(8) d) 1010101001(2) = ?(8) e) 1111111111(2) = ?(8) f) 01011(2) = ?(8) g) 1001101(2) = ?(8) h) 11001(2) = ?(8)

Conversão de Binário para Hexadecimal

Page 19: Aulas arquitetura de computadores parte 1

Prof.: Ricardo Gonçalves de Aguiar Material de Apoio

~ 19 ~

EXERCÍCIOS:

Converta para Hexadecimal

a) 10011011(2) = ?(16) b) 010011(2) = ?(16) c) 1011110110(2) = ?(16) d) 1010101001(2) = ?(16) e) 1111111111(2) = ?(16) f) 01011(2) = ?(16) g) 1001101(2) = ?(16) h) 11001(2) = ?(16)

Conversão de Octal para Binário

EXERCÍCIOS: Converta para Binário

a) 4571(8) = ?(2) b) 701(8) = ?(2) c) 512(8) = ?(2) d) 202(8) = ?(2) e) 453(8) = ?(2) f) 645(8) = ?(2) g) 4034(8) = ?(2) h) 10101(8) = ?(2)

Page 20: Aulas arquitetura de computadores parte 1

Prof.: Ricardo Gonçalves de Aguiar Material de Apoio

~ 20 ~

Conversão de Hexadecimal para Binário

EXERCÍCIOS: Converta para Binário

a) 8A9(16) = ?(2) b) A051(16) = ?(2) c) 3B5(16) = ?(2) d) FA2(16) = ?(2) e) 9A23(16) = ?(2) f) AF5(16) = ?(2) g) 1B2F4(16) = ?(2) h) A23(16) = ?(2)

Resumo das transformações entre bases:

Page 21: Aulas arquitetura de computadores parte 1

Prof.: Ricardo Gonçalves de Aguiar Material de Apoio

~ 21 ~

EXERCÍCIOS:

1. Se você tivesse que converter um número octal em hexadecimal, como você faria? Descreva. Há outra forma de fazer a conversão? Qual a mais fácil na sua opinião?

2. Dado o No “010”, diga: Em qual base o No está representado? Explique o por quê?

3. Dado o número octal 36724: Quanto vale o número 7?

Operações Aritméticas As operações aritméticas em sistemas digitais são geralmente feitas em binário. Sabe-se que projetar circuitos lógicos para aritmética binária é bem mais fácil do que para aritmética decimal. A aritmética binária é realizada de forma semelhante à aritmética decimal. • Adição (operação decimal)

– A adição no sistema binário é realizada exatamente da mesma forma que uma adição no sistema decimal.

– Vamos realizar uma adição na base 10 e posteriormente outra na base 2.

– Seja a operação:

– Somamos por colunas à partir da direita, temos 8+5=13, como a soma excedeu o maior dígito disponível, usamos a regra do transporte para a próxima coluna. – Assim, dizemos que dá 3 e “vai um”. – Este transporte “vai um” é computado na soma da próxima coluna, que passa a ser 8+1+1=10, novamente usamos o transporte e dizemos que dá 0 e “vai um” abrindo uma nova coluna que é 0+0+1=1. – Obtemos desta forma o resultado 103.

• Adição (operação binária) A única operação aritmética que o computador mais complexo ou a máquina de calcular mais simples sabem resolver é a adição. Qualquer outra operação matemática é resolvida à custa da adição:

• Para subtrair adiciona-se a soma do simétrico • Para multiplicar fazem-se adições sucessivas • Para as restantes operações utilizam-se outros algoritmos baseados na

adição

Page 22: Aulas arquitetura de computadores parte 1

Prof.: Ricardo Gonçalves de Aguiar

Uma operação de adição no sistema binário reduzsimples operações:

Exemplo:

Outros exemplos:

Prof.: Ricardo Gonçalves de Aguiar Material de Apoio

~ 22 ~

Uma operação de adição no sistema binário reduz-se à resolução de cinco

Material de Apoio

se à resolução de cinco

Page 23: Aulas arquitetura de computadores parte 1

Prof.: Ricardo Gonçalves de Aguiar Material de Apoio

~ 23 ~

EXERCÍCIOS: Faça as operações:

a) 10101101 + 10101 b) 10010101+101101 c) 10101110+10111010 d) 11001101+10101010

• Subtração (operação decimal) A subtração no sistema binário é realizada exatamente da mesma forma que uma subtração no sistema decimal.

– Subtraímos por colunas à partir da direita, temos 3 – 6 = ?, como não dá para tirar 6 de 3, “pedimos emprestado” para próxima casa a esquerda. Tiramos 1 do 2 e somamos 10 ao 3. Assim 13 – 6 = 7 – Somamos 10 ao 3 pois esta é a base em que estamos trabalhando e cada ponto na casa a esquerda vale 10 na direita. – Na próxima conta temos 1 – 7 = ? (não é mais dois pois emprestou 1 ao 3). Como não dá p tirar 7 de 1 “pedimos emprestado” a próxima casa a esquerda. Subtraímos 1 do 7 e somamos 10 ao 1. Assim 11 – 7 = 4 – A última etapa é a do 6 – 1 = 5 – Obtemos desta forma o resultado 547.

Uma operação de subtração no sistema binário reduz-se à resolução de quatro simples operações:

Exemplos:

Page 24: Aulas arquitetura de computadores parte 1

Prof.: Ricardo Gonçalves de Aguiar

a) 10101101 –b) 1110011 – c) 11100011 –d) 01101100 –

TÉCNICA COMPLEMENTO DE DOIS A implementação do algoritmo da subtração em computadores é complexa, requerendo vários testes, assim, em computadores a subtração em binário é feita por um artifício. O método utilizado é o computadores encontram o complemento de dois de um número através de um algoritmo que pode ser assim descrito

• inverta subtraendo na subtração (todo 1 vira zero, todo zero vira um)• some 1 ao número em complemento• some as parcelas (na subtração, some o minuendo ao subtraendo)• se a soma em complemento acarretar "vai

transporte final) Como exemplo, vamos usar o algoritmo acima na subtração 1101

mantém o minuendo inverte o subtraendo soma 1 ao subtraendo soma o minuendo com o complementoignora o "vai-um"

mantém o minuendo inverte o subtraendo soma 1 ao subtraendo soma o minuendo com o complementoignora o "vai-um"

Prof.: Ricardo Gonçalves de Aguiar Material de Apoio

~ 24 ~

EXERCÍCIOS: Faça as operações:

– 1010 01010010 – 00110101 – 01001100

TÉCNICA COMPLEMENTO DE DOIS

A implementação do algoritmo da subtração em computadores é complexa, requerendo vários testes, assim, em computadores a subtração em binário é feita por um artifício. O método utilizado é o "Método do Complemento de dois". Ocomputadores encontram o complemento de dois de um número através de um algoritmo que pode ser assim descrito abaixo:

inverta subtraendo na subtração (todo 1 vira zero, todo zero vira um)some 1 ao número em complemento some as parcelas (na subtração, some o minuendo ao subtraendo)se a soma em complemento acarretar "vai-um" ao resultado, ignore o

Como exemplo, vamos usar o algoritmo acima na subtração 1101

1101 0011

0100soma o minuendo com o complemento-2 do subtraendo 10001

0001 Resposta

101110 111010

111011soma o minuendo com o complemento-2 do subtraendo 1101001

101001

Material de Apoio

A implementação do algoritmo da subtração em computadores é complexa, requerendo vários testes, assim, em computadores a subtração em binário é feita

Método do Complemento de dois". Os computadores encontram o complemento de dois de um número através de um

inverta subtraendo na subtração (todo 1 vira zero, todo zero vira um)

some as parcelas (na subtração, some o minuendo ao subtraendo) um" ao resultado, ignore o

Como exemplo, vamos usar o algoritmo acima na subtração 1101 - 1100 = 0001.

0011 0100 0001 0001 Resposta

101110 111010 111011 101001 101001Resposta

Page 25: Aulas arquitetura de computadores parte 1

Prof.: Ricardo Gonçalves de Aguiar Material de Apoio

~ 25 ~

EXERCÍCIOS:

Faça as operações utilizando a algoritmo do complemento de 2:

a) 10101101 – 1010 b) 1110011 – 01010010 c) 11100011 – 00110101 d) 01101100 – 01001100

Funções e Portas Lógicas Em 1854 o matemático inglês George Boole apresentou um sistema matemático de análise lógica conhecido como álgebra de Boole. Somente em 1938, um engenheiro americano utilizou as teorias da álgebra de Boole para a solução de problemas de circuitos de telefonia com relés, tendo publicado um artigo que praticamente introduziu na área tecnológica o campo da eletrônica digital. Os sistemas digitais são formados por circuitos lógicos denominados de portas lógicas que, utilizados de forma conveniente, podem implementar todas as expressões geradas pela álgebra de Boole. Existem três portas básicas (E, OU e NÃO) que podem ser conectadas de várias maneiras, formando sistemas que vão de simples relógios digitais aos computadores de grande porte. Função “AND” (E). A função AND é aquela que executa a multiplicação de duas ou mais variáveis booleanas. Sua representação algébrica para duas variáveis é � �. �, onde se lê: � � ��� �. Para compreender a função AND da álgebra Booleana, deve-se analisar o circuito da Figura abaixo, para o qual se adota as seguintes convenções:

• �ℎ��� ������ 0, • �ℎ��� ���ℎ��� 1, • �â� ��� � �!��� 0 e • �â� ��� ���"� 1.

A análise da Figura anterior revela que a lâmpada somente acenderá se ambas as chaves estiverem fechadas e, seguindo a convenção, tem-se: #$ � 1, #$ � 1, resulta em � 1. Pode-se, desta forma, escrever todas as possíveis combinações de operação das chaves na chamada Tabela da Verdade, que é definida como um mapa onde se depositam todas as possíveis situações com seus respectivos

Page 26: Aulas arquitetura de computadores parte 1

Prof.: Ricardo Gonçalves de Aguiar Material de Apoio

~ 26 ~

resultados. O número de combinações possíveis é igual a 2%, onde & é o número de variáveis de entrada.

Tabela Verdade da função AND

A B S

0 0 0

0 1 0

1 0 0

1 1 1

A porta lógica AND é um circuito que executa a função AND da álgebra de Boole, sendo representada, na prática, através do símbolo visto na Figura abaixo:

“A saída da porta E será 1, somente se todas as entradas A e B forem 1”. Função “OR” (OU) A função OR é aquela que executa a soma de duas ou mais variáveis booleanas. Sua representação algébrica para duas variáveis é � � � �, onde se lê: � � '� �. Para compreender a função OR da álgebra Booleana, deve-se analisar o circuito da Figura abaixo, para o qual se adota as seguintes convenções:

• �ℎ��� ������ 0, • �ℎ��� ���ℎ��� 1, • �â� ��� � �!��� 0 e • �â� ��� ���"� 1.

O circuito anterior mostra que a lâmpada acende quando qualquer uma das chaves estiver fechada e permanece apagada se ambas estiverem abertas, ou seja, #$ � 0, #$ � 0, resulta �� � 0.

Page 27: Aulas arquitetura de computadores parte 1

Prof.: Ricardo Gonçalves de Aguiar Material de Apoio

~ 27 ~

A Fig. abaixo ilustra a porta lógica que executa a função OR da álgebra de Boole, juntamente com a sua tabela da verdade.

“A saída de uma porta OU será 1 se uma ou mais entradas forem 1”. Função “NOT” (NÃO) A função NOT inverte ou complementa o estado da variável de entrada, ou seja, se a variável estiver em 0, a saída vai para 1, e se estiver em 1 a saída vai para 0. É representada algebricamente da seguinte forma: � �’ ou �), onde se lê: NOT A. A análise do circuito da Fig. abaixo ajuda a compreender melhor a função NOT da álgebra Booleana. Será utilizada a mesma convenção dos casos anteriores.

Observando o circuito da Figura anterior, pode-se concluir que a lâmpada estará acesa somente se a chave estiver aberta (#$ � 0, � 1), quando a chave fecha, a corrente desvia por ela e a Lâmpada apaga (#$ � 1, � 0). O inversor é o bloco lógico que executa a função NOT. Sua representação simbólica é vista na Figura abaixo, juntamente com sua tabela da verdade. “A saída de uma porta NOT assume o nível lógico 1 somente quando sua entrada é 0 e vice-versa”.

A B S

0 0 0

0 1 1

1 0 1

1 1 1

A S

0 1

1 0

Page 28: Aulas arquitetura de computadores parte 1

Prof.: Ricardo Gonçalves de Aguiar Material de Apoio

~ 28 ~

Função “NAND” (NÃO E) Esta função é uma composição das funções AND e NOT, ou seja, é a função AND invertida. Sua representação algébrica é � (�. �)--------, onde o traço indica que ocorrerá uma inversão do produto booleano �. �. O circuito da Figura abaixo esclarece o comportamento da função NAND. Observa-se que a lâmpada apaga somente quando ambas as chaves são fechadas, ou seja, #$ � 1, #$ � 1, implica em � 0.

A Figura abaixo ilustra o circuito que executa a função NAND da álgebra de Boole, juntamente com sua tabela da verdade.

“Esta função é o inverso da função E, ou seja, a saída será 0 somente quando todas as entradas forem 1”. Função “NOR” (NÃO OU) Analogamente a função NOR é a composição da função OR com a função NOT, ou seja, é a função OR invertida. É representada algebricamente da seguinte forma: � (� � �)----------, onde o traço indica que ocorrerá uma inversão da soma booleana � � �.

A B S

0 0 1

0 1 1

1 0 1

1 1 0

Page 29: Aulas arquitetura de computadores parte 1

Prof.: Ricardo Gonçalves de Aguiar Material de Apoio

~ 29 ~

Para melhor compreender a função NOR da álgebra de Boole, pode-se analisar o circuito da Figura abaixo, onde se observa que a lâmpada fica acesa somente quando as duas chaves estão abertas. Assim, #$ � 0, #$� 0, resulta em � 1.

A Figura abaixo ilustra o circuito que executa a função NOR da álgebra de Boole, e sua tabela da verdade.

“Esta função é o inverso da função OU, ou seja, a saída será 0 se uma ou mais entradas forem 1”.

Função “XOR” (OU EXCLUSIVO)

Esta função apresenta saída com valor 1 quando as variáveis de entrada forem diferentes entre si. A notação algébrica que representa a função XOR é �⨁�, onde se lê: � /01 �. Para entender melhor a função /01, analisa-se o circuito da Figura abaixo. Na condição em que as chaves #$ � e #$ � estão abertas (e estão fechadas), não há caminho para a corrente circular e a lâmpada não acende. A lâmpada continua apagada quando as chaves #$ � e #$ � estão fechadas, pois #$ � e #$ � estão abertas interrompendo o fluxo de corrente. Portanto, pode-se concluir que este Bloco só terá nível 1 na saída (lâmpada acesa), quando suas entradas forem diferentes.

A B S

0 0 1

0 1 0

1 0 0

1 1 0

Page 30: Aulas arquitetura de computadores parte 1

Prof.: Ricardo Gonçalves de Aguiar Material de Apoio

~ 30 ~

A Figura abaixo ilustra o símbolo que representa, na prática, a função XOR e sua tabela da verdade.

“Nesta função a saída será 1 se as entradas forem diferentes.

A Figura a acima simplesmente simboliza o circuito lógico que executa a função XOR. O circuito que executa a função é ilustrado abaixo:

Observação importante: ao contrário dos outros blocos lógicos, cada circuito XOR admite somente 2 variáveis de entrada.

Função “XNOR” (COINCIDÊNCIA) Esta função, como seu próprio nome diz, apresenta saída com valor 1 quando houver uma coincidência nos valores das variáveis de entrada. A notação algébrica que representa a função Coincidência é � ⊙ � ou �⊕ �--------, onde se lê: � /401 �.

O circuito da Figura abaixo ajuda a compreender a operação da função 5&67. Quando as chaves #$ � e #$ � estão abertas (e estão fechadas) circula corrente pela lâmpada e ela estará acesa. Quando #$ � 1 e #$ � 0 não circula corrente pela lâmpada, o que implica em lâmpada apagada. Na situação inversa #$ � 0 e #$ � 1 ocorre a mesma coisa e a lâmpada não acenderá.

A Figura abaixo ilustra o símbolo que representa, na prática, a função Coincidência e sua tabela da verdade.

A B S

0 0 0

0 1 1

1 0 1

1 1 0

Page 31: Aulas arquitetura de computadores parte 1

Prof.: Ricardo Gonçalves de Aguiar Material de Apoio

~ 31 ~

A Figura acima simplesmente representa simbolicamente o circuito lógico que executa a função XNOR. Na verdade, o circuito capaz de realizar esta função é ilustrado na Figura a abaixo:

Observação importante: Assim como ocorre com o bloco lógico OU EXCLUSIVO, o circuito COINCIDÊNCIA é definido apenas para 2 variáveis de entrada.

Composição de um circuito em função de portas lógicas.

A B S

0 0 1

0 1 0

1 0 0

1 1 1

Page 32: Aulas arquitetura de computadores parte 1

Prof.: Ricardo Gonçalves de Aguiar

Tipo Símbolo (Norma

AND

OR

NOT

NAND

NOR

Prof.: Ricardo Gonçalves de Aguiar Material de Apoio

~ 32 ~

Resumo:

Símbolo (Norma ANSI) Função booleana Tabela verdade

ENTRADA

A B

0 0

0 1

1 0

1 1

ENTRADA

A B

0 0

0 1

1 0

1 1

ENTRADA

A

0

1

ENTRADA

A B A NAND B

0 0

0 1

1 0

1 1

ENTRADA

A B

0 0

0 1

1 0

1 1

Material de Apoio

Tabela verdade

SAÍDA

A AND B

0

0

0

1

ENTRADA SAÍDA

A OR B

0

1

1

1

ENTRADA SAÍDA

NOT A

1

0

SAÍDA

A NAND B

1

1

1

0

SAÍDA

A NOR B

1

0

0

0

Page 33: Aulas arquitetura de computadores parte 1

Prof.: Ricardo Gonçalves de Aguiar

XOR

XNOR

Circuitos lógicos obtidos de expressões booleanas.

Exemplo: (� � �) ⊕ (� ·

Exemplo: 9(�- . �) � (�) �--------------------------

Prof.: Ricardo Gonçalves de Aguiar Material de Apoio

~ 33 ~

ENTRADA

A B

0 0

0 1

1 0

1 1

ENTRADA

A B A XNOR B

0 0

0 1

1 0

1 1

Circuitos lógicos obtidos de expressões booleanas.

· �)

� �)------:-------

Material de Apoio

SAÍDA

A XOR B

0

1

1

0

SAÍDA

A XNOR B

1

0

0

1

Page 34: Aulas arquitetura de computadores parte 1

Prof.: Ricardo Gonçalves de Aguiar Material de Apoio

~ 34 ~

Exemplo: {9(�- . �) � (�) � �)-----------:-------------------------- . 9(� ⨁ �-) . (� . �) � �-)--------------:----------------------------}

Exercícios: Construir o circuito baseando-se na expressão booleana:

a. ( · >-)-------- � ⨁ >-

b. ) · (> ⨁ )---------- ·

c. ( ) ⋅ �)-------- ⨁ > � �

d. ⋅ � � >- ⨁ �) �

Expressões booleanas obtidas de circuitos lógicos.

Exemplo:

9(�- . �) � (�) � �)-----------:--------------------------

Page 35: Aulas arquitetura de computadores parte 1

Prof.: Ricardo Gonçalves de Aguiar Material de Apoio

~ 35 ~

Exercícios: Construir a expressão booleana baseando-se no circuito lógico:

Tabelas da verdade obtidas de expressões booleanas

Podemos obter a tabela verdade aplicando as funções booleanas na sua ordem:

1. Negação 2. E 3. OU

Exemplo: 9(�- . �) � (�- � �)-----------:--------------------------

� � �- �- �- . � �- � � (�- � �)----------- (�- . �) � (�- � �)----------- 9(�- . �) � (�- � �)-----------:--------------------------

0 0 1 1 0 0 1 1 0 0 1 1 0 1 0 1 1 0 1 0 0 1 0 1 0 1 0 1 1 0 0 0 0 1 1 0

Tabelas verdades obtidas de circuitos lógicos.

O processo consiste em converter o circuito em expressão e construir a tabela verdade.

Page 36: Aulas arquitetura de computadores parte 1

Prof.: Ricardo Gonçalves de Aguiar

Circuitos lógicos obtidos de tabelas da verdade

Minitermos e Maxitermos

Dada uma tabela verdade podemos chegar na expressão do circuito pelo “e” dos minitermos ou pelo “ou”dos maxitermos:

Maxitermos:

�’. �. #’ � �’.

Simplificação de expressões

A partir de uma tabela, podeLagrange (maxitermos e minitermossimplificações na expressão obtida para se atingir a forma simplificada.

Teremos que usar definições de álgebra booleana tais como:

• � · �- 0

• � � �- 1

• � � � �

• �� � �� �(� � �

• � · 1 �

• � · � � • � � � � • etc

Prof.: Ricardo Gonçalves de Aguiar Material de Apoio

~ 36 ~

Circuitos lógicos obtidos de tabelas da verdade

Minitermos e Maxitermos

Dada uma tabela verdade podemos chegar na expressão do circuito pelo ou pelo “ou”dos maxitermos:

Um minitermo tem valor F igual a zeromaxitermo tem valor F igual a 1

Minitermos:

(� � � � #). (� � � � #’). (�’

. �. # � �. �’. #’ � �. �. #’ � �. �.

Simplificação de expressões

A partir de uma tabela, pode-se obter a sua função pelo do método de (maxitermos e minitermos). Entretanto, esse método exige que se

simplificações na expressão obtida para se atingir a forma simplificada.

Teremos que usar definições de álgebra booleana tais como:

�)

Material de Apoio

Dada uma tabela verdade podemos chegar na expressão do circuito pelo

F igual a zero e um F igual a 1

� � � #’) C

# C

se obter a sua função pelo do método de . Entretanto, esse método exige que se façam

simplificações na expressão obtida para se atingir a forma simplificada.

Page 37: Aulas arquitetura de computadores parte 1

Prof.: Ricardo Gonçalves de Aguiar

Como exemplo, considere a tabela a seguir, e sua respectiva função:

Mapa de Karnaugh

O Mapa de Karnaugh booleanas de uma forma mais fácil. Chamamos esse diagrama de mapa, haja vista ser um mapeamentque está a ser analisada. Os diagramas foram originalmente criados por Edward Veitch (1952) e aperfeiçoados pelo engenheiro de telecomunicações Maurice Karnaugh. Karnaugh utilizou os diagramas para sitelefonia.

Construindo o Mapa de Karnaugh para 02 variáveis

Considere a tabela verdade abaixo implementando a função AND:

A B S 0 0 0 0 1 0 1 0 0 1 1 1

Prof.: Ricardo Gonçalves de Aguiar Material de Apoio

~ 37 ~

Como exemplo, considere a tabela a seguir, e sua respectiva função:

O Mapa de Karnaugh é um diagrama utilizado na minimização de funções de uma forma mais fácil. Chamamos esse diagrama de mapa, haja

vista ser um mapeamento biunívoco a partir de uma tabela de verdade da função que está a ser analisada. Os diagramas foram originalmente criados por Edward Veitch (1952) e aperfeiçoados pelo engenheiro de telecomunicações Maurice Karnaugh. Karnaugh utilizou os diagramas para simplificar circuitos utilizados em

Construindo o Mapa de Karnaugh para 02 variáveis

Considere a tabela verdade abaixo implementando a função AND:

Material de Apoio

Como exemplo, considere a tabela a seguir, e sua respectiva função:

na minimização de funções de uma forma mais fácil. Chamamos esse diagrama de mapa, haja

o biunívoco a partir de uma tabela de verdade da função que está a ser analisada. Os diagramas foram originalmente criados por Edward Veitch (1952) e aperfeiçoados pelo engenheiro de telecomunicações Maurice

mplificar circuitos utilizados em

Considere a tabela verdade abaixo implementando a função AND:

Page 38: Aulas arquitetura de computadores parte 1

Prof.: Ricardo Gonçalves de Aguiar Material de Apoio

~ 38 ~

Construindo o Mapa de Karnaugh para 03 variáveis

Construindo o Mapa de Karnaugh para 04 variáveis

Metodologia de Leitura

1. Todo 1 deve ser lido pelo menos uma vez. 2. Os agrupamentos devem ter potência de 2 (1, 2, 4, 8, 16, ...). 3. O grupo deve ser o maior possível. 4. Deve-se ter o menor número possível de leituras. 5. A leitura corresponde às variáveis que se mantiverem constantes.

A B C S 0 0 0 0 0 0 1 1 0 1 0 0 0 1 1 1 1 0 0 0 1 0 1 1 1 1 0 1 1 1 1 1

A B C D S 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 1 1 1 0 1 0 0 0 0 1 0 1 0 0 1 1 0 0 0 1 1 1 1 1 0 0 0 0 1 0 0 1 0 1 0 1 0 0 1 0 1 1 1 1 1 0 0 1 1 1 0 1 1 1 1 1 0 1 1 1 1 1 1

Page 39: Aulas arquitetura de computadores parte 1

Prof.: Ricardo Gonçalves de Aguiar Material de Apoio

~ 39 ~

Exemplo 1:

Exemplo 2:

Exemplo 3:

Lembrar que a tabela é tridimensional!

A B S 0 0 0 0 1 0 1 0 1 1 1 1

A B S 0 0 0 0 1 0 1 0 1 1 1 1

A B C S 0 0 0 1 0 0 1 0 0 1 0 1 0 1 1 0 1 0 0 0 1 0 1 1 1 1 0 0 1 1 1 1

Page 40: Aulas arquitetura de computadores parte 1

Prof.: Ricardo Gonçalves de Aguiar Material de Apoio

~ 40 ~

Page 41: Aulas arquitetura de computadores parte 1

Prof.: Ricardo Gonçalves de Aguiar

Aplicações de circuitos lógicos

Vamos lembrar a aritmética de ponto fixo, para a soma de dois b 0 + 0 = 0 0 + 1 = 1 1 + 0 = 1 1 + 1 = 0 e vai um. Se houver vai um na soma ante1 + 1 + 1 = 1 e vai um. CIRCUITO MEIO SOMADOR O circuito meio-somador SOMA DOIS BITS

• Entrada - os dois bits a serem somados • Saída - a soma dos bits e o bit de carry out ("vai um")

Como descrevemos anteriormente, uma função lógica produz uma e apenas uma saída. Portanto, sendo duas as saídas, serão necessárias duas funçõesdiferentes, ou um circuito composto, podendo haver in O processo de construção do circuito conta com:

1. Construir a tabela2. Forma algébrica 3. Simplificação (não há o que simplificar)

1 - Construção da Tabela:

3 – Construção do circuito:

A B S Co 0 0 0 0 0 1 1 0 1 0 1 0 1 1 0 1

Prof.: Ricardo Gonçalves de Aguiar Material de Apoio

~ 41 ~

Aplicações de circuitos lógicos: Construção do circuito somador

Vamos lembrar a aritmética de ponto fixo, para a soma de dois bits.

Se houver vai um na soma anterior, teremos:

SOMADOR somador SOMA DOIS BITS (primeira soma: sem “vai um”).

os dois bits a serem somados - A e B a soma dos bits e o bit de carry out ("vai um") - S e

Como descrevemos anteriormente, uma função lógica produz uma e apenas uma saída. Portanto, sendo duas as saídas, serão necessárias duas funçõesdiferentes, ou um circuito composto, podendo haver interseção de portas lógicas.

O processo de construção do circuito conta com:

Construir a tabela verdade

Simplificação (não há o que simplificar)

Construção da Tabela:

2 - Forma Algébrica (Usando maxitermos):

� �) · � � � · �- #' � · �

Construção do circuito:

Material de Apoio

: Construção do circuito somador

its.

rior, teremos:

(primeira soma: sem “vai um”).

S e Co

Como descrevemos anteriormente, uma função lógica produz uma e apenas uma saída. Portanto, sendo duas as saídas, serão necessárias duas funções

terseção de portas lógicas.

Forma Algébrica (Usando maxitermos):

Page 42: Aulas arquitetura de computadores parte 1

Prof.: Ricardo Gonçalves de Aguiar

CIRCUITO SOMADOR COMPLETO (FULL ADDER) O circuito somador completo SOMA DOIS BITS veio da soma anterior.

• Entrada - os dois bits a serem somados e o bit de carry in • Saída - a soma dos bits e o bit de carry out ("vai um")

1 - Construção da Tabela:

Forma Algébrica Função Co (Usando maxitermos): #' �) · � · #D � � · �- ·Simplificação: #' #D · (�) · � � � · �-)

#' #D · (� ⨁ �) � � ·

3 – Construção do circuito:

A B Ci S Co0 0 0 0 00 0 1 1 00 1 0 1 00 1 1 0 11 0 0 1 01 0 1 0 11 1 0 0 11 1 1 1 1

Prof.: Ricardo Gonçalves de Aguiar Material de Apoio

~ 42 ~

CIRCUITO SOMADOR COMPLETO (FULL ADDER)

O circuito somador completo SOMA DOIS BITS e o bit de carry

os dois bits a serem somados e o bit de carry in a soma dos bits e o bit de carry out ("vai um") - S e Co

Construção da Tabela: 2 - Forma Algébrica Função S (Usando maxitermos): � �) · �- · #D � �) · � · #EF � � · �- ·Simplificação: � #D · (�) · �- � � · �) � #EF · (�) · �

� #D · (� ⨁ �--------) � #EF · (� ⨁ �) � #D ⨁ (� ⨁ �)

Forma Algébrica Função Co (Usando maxitermos):

- · #D � � · � · #EF � � · � · #D

-) � � · � · (#D � #EF ) �

Construção do circuito:

Co 0 0 0 1 0 1 1 1

Material de Apoio

carry in (“vai um”) que

os dois bits a serem somados e o bit de carry in - A, B e Ci S e Co

(Usando maxitermos):

- #EF � � · � · #D

� � � · �-)

Page 43: Aulas arquitetura de computadores parte 1

Prof.: Ricardo Gonçalves de Aguiar Material de Apoio

~ 43 ~