arquitetura de computadores i - di.ubi.ptparaujo/cadeiras/arquitecturacomputadores... ·...

87
Pedro Araújo Gab. 4.12 (6.15 , 6.21) E-mail: [email protected] www.di.ubi.pt/~paraujo/ArquiteturaComputadoresI ARQUITETURA DE COMPUTADORES I 2018-2019 Engenharia Informática(11537)

Upload: truongdieu

Post on 19-Nov-2018

235 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: ARQUITETURA DE COMPUTADORES I - di.ubi.ptparaujo/Cadeiras/ArquitecturaComputadores... · ARQUITETURA DE COMPUTADORES I 2018-2019 Engenharia Informática(11537) Aquisição de conhecimentos

• Pedro Araújo

• Gab. 4.12 (6.15 , 6.21)

• E-mail: [email protected]

• www.di.ubi.pt/~paraujo/ArquiteturaComputadoresI

ARQUITETURA DE COMPUTADORES I 2018-2019

Engenharia Informática(11537)

Page 2: ARQUITETURA DE COMPUTADORES I - di.ubi.ptparaujo/Cadeiras/ArquitecturaComputadores... · ARQUITETURA DE COMPUTADORES I 2018-2019 Engenharia Informática(11537) Aquisição de conhecimentos

Aquisição de conhecimentos sobre as tecnologias utilizadas na construção de computadores digitais. Análise e síntese de sistemas digitais combinatórios e sequenciais. Introdução aos sistemas e arquiteturas digitais.

No final da unidade curricular o estudante deve ser capaz de compreender o funcionamento da maioria dos circuitos que compõem os computadores digitais, sendo capaz de realizar a respectiva análise e síntese.

Objectivo

Page 3: ARQUITETURA DE COMPUTADORES I - di.ubi.ptparaujo/Cadeiras/ArquitecturaComputadores... · ARQUITETURA DE COMPUTADORES I 2018-2019 Engenharia Informática(11537) Aquisição de conhecimentos

• Introdução dos conceitos

• Alertas/chamadas de atenção

• Propostas de trabalhos/desafios

• …

... melhoria contínua dos apontamentos da disciplina ...

• Resolução dos trabalhos práticos

• Pesquisas (net, etc)

• …

Teóricas(T) Práticas(P)

Aulas

Page 4: ARQUITETURA DE COMPUTADORES I - di.ubi.ptparaujo/Cadeiras/ArquitecturaComputadores... · ARQUITETURA DE COMPUTADORES I 2018-2019 Engenharia Informática(11537) Aquisição de conhecimentos

Programa (resumido)

Aulas teóricas(T)

[ Noções sobre electricidade/electrónica ]

A) Sistemas Digitais: sistemas analógicos vs digitais, computação analógica vs computação digital, conversão A/D e D/A, representação eléctrica dos sinais digitais;

B) Álgebra de Boole: variáveis e funções lógicas, tabelas de verdade, axiomas e teoremas da álgebra de Boole, simplificação de funções;

C) Aritmética binária: sistemas de numeração, códigos de representação, aritmética e métrica binária;

D) Circuitos digitais: tipos e famílias de portas lógicas, circuitos combinatórios, circuitos sequenciais;

E) Memória: tipos ROM e RAM, estáticas e dinâmicas;

F ???) Lógica programável;

Page 5: ARQUITETURA DE COMPUTADORES I - di.ubi.ptparaujo/Cadeiras/ArquitecturaComputadores... · ARQUITETURA DE COMPUTADORES I 2018-2019 Engenharia Informática(11537) Aquisição de conhecimentos

Programa (resumido)

Aulas práticas (P)

A ???) Tecnologia dos sistemas digitais: componentes electrónicos e sua utilização; (detecção e localização de falhas) – realização de um exercício prático (testes de portas lógicas e/ou circuito do LPB)

B) Apresentação e resolução de trabalhos práticos usando programas de simulação de circuitos digitais:

B.1 LogiSim – simulador de circuitos digitais;

(B.2 Boole_Deusto – resolução de equações lógicas)

Page 6: ARQUITETURA DE COMPUTADORES I - di.ubi.ptparaujo/Cadeiras/ArquitecturaComputadores... · ARQUITETURA DE COMPUTADORES I 2018-2019 Engenharia Informática(11537) Aquisição de conhecimentos

[1] Textos

1.1) Sistemas Digitais - Princípios e Prática (3ª Edição Revista), Morgado Dias, ISBN=978-972-722-700-6, Editora FCA, 2013.

1.2) “Computer Systems - Digital Design, Fundamentals of Computer Architecture and Assembly Language”, Ata Elahi, Springer, 2018.

1.3) Apontamentos das aulas;

[2] Textos on-line

2.1) Introdução à Eletrônica para Artistas (e-book) https://www.embarcados.com.br/introducao-a-eletronica-para-artistas/

2.2) Simulador de circuitos digitais – Logisim: http://www.cburch.com/logisim/pt/index.html

2.3) Diversos pdf, simuladores, aplicativos, ...

Apoio

Page 7: ARQUITETURA DE COMPUTADORES I - di.ubi.ptparaujo/Cadeiras/ArquitecturaComputadores... · ARQUITETURA DE COMPUTADORES I 2018-2019 Engenharia Informática(11537) Aquisição de conhecimentos

Avaliação

• Teórica(TE) (freq. + exames) = 12 valores → freq. obrigatória Data: 2018/12/13 , 11-13h

• Prática(TP) = 8 valores → dois trabalhos feitos na aula, ambos obrigatórios, com entrega de

um pequeno relatório(pode ser apenas uma folha de rosto); a nota dos trabalhos conta

para todos os exames

Datas: TP1(3 valores): 2018/12 , 16 Nov TP2(5 valores): 2019/7 , 11 Jan

• Nota Final: NF = TE + TP → Aprovação: NF >= 10

• Mínimos: TE+TP ≥ 6 + Assiduidade ≥ 85% aulas práticas (podem faltar a duas aulas) +

realização de todas as provas obrigatórias : caso não sejam atingidos o aluno terá NA(Não

Admitido) ficando excluído do processo de avaliação e tendo de repetir a UC.

• Melhoria de classificação em exame: só para TE → conta a melhor nota

• Condicionalmente, os trabalhos práticos podem contar para o ano seguinte, dispensando o aluno das aulas práticas (não podem ser melhorados)

• Alunos especiais (trabalhadores estudantes, etc): à partida têm de cumprir os critérios anteriores, mas devem contactar o docente para que o seu caso seja analisado

Page 8: ARQUITETURA DE COMPUTADORES I - di.ubi.ptparaujo/Cadeiras/ArquitecturaComputadores... · ARQUITETURA DE COMPUTADORES I 2018-2019 Engenharia Informática(11537) Aquisição de conhecimentos

Aula 1

Sistemas Analógicos vs Sistemas Digitais

Page 9: ARQUITETURA DE COMPUTADORES I - di.ubi.ptparaujo/Cadeiras/ArquitecturaComputadores... · ARQUITETURA DE COMPUTADORES I 2018-2019 Engenharia Informática(11537) Aquisição de conhecimentos

Sistema: conjunto de blocos (dispositivos e/ou componentes )interligados que desempenham uma função complexa. Sistema digital: constituído por vários blocos, que no conjunto desempenham determinada função. Ex: Processador = memória + controladores + unidade lógica aritmética + ... Dispositivo: circuito composto por vários componentes que desempenha uma função simples. Ex: contadores, somadores, registos, ... Componente: cada uma das partes que constituem um dispositivo Ex: resistências, transistores, circuitos integrados Circuito integrado (chip): circuito em que os diversos componentes estão integrados sobre uma mesma base (substrato ou plataforma)

Definições

Page 10: ARQUITETURA DE COMPUTADORES I - di.ubi.ptparaujo/Cadeiras/ArquitecturaComputadores... · ARQUITETURA DE COMPUTADORES I 2018-2019 Engenharia Informática(11537) Aquisição de conhecimentos

Sistemas analógicos vs Sistemas digitais

Sistemas analógicos: trabalham com grandezas representadas por semelhança (analogia) entre outras grandezas diferentes, de forma proporcional entre elas. Exs: • num termómetro, uma coluna de mercúrio representa a temperatura (grandeza física) • numa balança, a posição do ponteiro representa a massa a medir • num gráfico de barras, a altura das barras representa os valores medidos ou calculados Sinal analógico: a representação das grandezas faz-se de forma contínua, podendo assumir uma infinidade de valores – por exemplo, a coluna de mercúrio do termómetro pode ocupar qualquer posição ao longo da escala. Circuito analógico: é aquele que processa sinais analógicos (em termos de entradas e saídas).

Page 11: ARQUITETURA DE COMPUTADORES I - di.ubi.ptparaujo/Cadeiras/ArquitecturaComputadores... · ARQUITETURA DE COMPUTADORES I 2018-2019 Engenharia Informática(11537) Aquisição de conhecimentos

Sistemas analógicos vs Sistemas digitais

f

(E)

Entrada

analógica

(S)

Saída

analógica

S = f (E) , função analógica

Temperatura ºC

-4

-2

0

2

4

6

8

10

Sinal analógico Circuito analógico

Page 12: ARQUITETURA DE COMPUTADORES I - di.ubi.ptparaujo/Cadeiras/ArquitecturaComputadores... · ARQUITETURA DE COMPUTADORES I 2018-2019 Engenharia Informática(11537) Aquisição de conhecimentos

Sistemas analógicos vs Sistemas digitais

Sistemas digitais: trabalham com grandezas representadas através de dígitos (algarismos, números) que simbolizam quantidades numéricas (inteiras ou fraccionárias) Exs: • num termómetro, a temperatura é dada por um valor numérico no mostrador • numa balança, o valor medido é indicado por algarismos • num gráfico de barras, o valor medido ou calculado aparece junto à respectiva barra sinal digital: a representação das grandezas faz-se de forma discreta (por saltos), podendo assumir apenas assumir um número finito de valores discretos – por exemplo, nos termómetros a temperatura é habitualmente indicada apenas até ao décimo de grau Celsius [ex. a temperatura pode passar de 28.3ºC para 28.4ºC, não sendo mostrados valores intermédios]. Circuito digital: é aquele que processa sinais digitais (em termos de entradas e saídas).

Page 13: ARQUITETURA DE COMPUTADORES I - di.ubi.ptparaujo/Cadeiras/ArquitecturaComputadores... · ARQUITETURA DE COMPUTADORES I 2018-2019 Engenharia Informática(11537) Aquisição de conhecimentos

Sistemas analógicos vs Sistemas digitais

Sinal digital Circuito digital

Temperatura ºC

-4

-2

0

2

4

6

8

10

F

(E)

Entrada

digital

(S)

Saída

digital

S = F(E) , função digital

Page 14: ARQUITETURA DE COMPUTADORES I - di.ubi.ptparaujo/Cadeiras/ArquitecturaComputadores... · ARQUITETURA DE COMPUTADORES I 2018-2019 Engenharia Informática(11537) Aquisição de conhecimentos

Computação

NOTAS Computar significa somar, que é uma das quatro operações aritméticas elementares. Embora os computadores actuais realizem outras operações, as operações aritméticas permanecem como um núcleo importante de operações a executar. Vamos ver que é possível realizar estas operações usando sistemas analógicos ou digitais. O processo analógico é aqui apresentado apenas a título informativo, sendo o processo digital aquele que vai ser usado ao longo da disciplina. A ideia é realizar as operações aritméticas usando objectos de uso corrente.

Page 15: ARQUITETURA DE COMPUTADORES I - di.ubi.ptparaujo/Cadeiras/ArquitecturaComputadores... · ARQUITETURA DE COMPUTADORES I 2018-2019 Engenharia Informática(11537) Aquisição de conhecimentos

Computação analógica Realizada por circuitos analógicos.

exemplo : operação de multiplicação → sistema de som doméstico O microfone produz um sinal eléctrico fraco, proporcional à intensidade do som captado, o qual é amplificado um certo número de vezes para produzir um sinal equivalente mas de maior intensidade que é aplicado a um altifalante. O amplificador funciona como um multiplicador saída = entrada * factor amplificação

microfone amplificador altifalante

Entrada: som fraco (ex:voz) Saída: som forte (amplificado)

Page 16: ARQUITETURA DE COMPUTADORES I - di.ubi.ptparaujo/Cadeiras/ArquitecturaComputadores... · ARQUITETURA DE COMPUTADORES I 2018-2019 Engenharia Informática(11537) Aquisição de conhecimentos

Computação digital

Ao contrário do caso anterior, no sistema digital trabalha-se directamente com valores numéricos, a questão que se coloca é quais valores? No sistema decimal usamos dez algarismos representados por [0, 1, 2, … , 9], que se tornam fáceis de reconhecer e de tratar pelo homem. Se os quiséssemos usar no sistema digital, os circuitos eléctricos teriam de ser capazes de reconhecer e de trabalhar com dez valores diferentes de corrente (ou tensão), o que tecnologicamente é complicado. Mas porque usamos dez algarismos? Porque não vinte? Ou doze? Ou cinco? Ou apenas dois? (já agora, será que podia ser apenas um?). Mais à frente veremos que é possível trabalhar apenas com dois algarismos [0, 1] e ainda assim é possível realizar as mesmas operações que realizamos com os dez algarismos decimais.

Page 17: ARQUITETURA DE COMPUTADORES I - di.ubi.ptparaujo/Cadeiras/ArquitecturaComputadores... · ARQUITETURA DE COMPUTADORES I 2018-2019 Engenharia Informática(11537) Aquisição de conhecimentos

Computação digital

Sendo assim, os circuitos digitais apenas precisam de distinguir dois estados, designados por bit (binary digit) e que podem ser designados do seguinte modo: “0” = bit zero, Falso(False), Nada, Baixo(Low/L), OFF bit “1” = bit um, Verdade(True), Tudo, Alto(High/H), ON Vejamos como são representados os bit’s e porque assumem aquelas designações. Havendo apenas dois bit [0,1] dizemos que há apenas dois estados que é preciso distinguir. Para tal, o mais simples é considerar uma situação de tudo/nada ou ainda de existe/não existe ou em termos eléctricos, ligado/desligado. Note-se que não é importante quantificar quanto vale “tudo” ou quanto vale “existe” ou ainda quanto vale “ligado” ou “desligado”, importa apenas distinguir a situação de existir ou não existir, estar ligado ou não estar ligado, etc. Isto simplifica muito a construção dos circuitos electrónicos.

Page 18: ARQUITETURA DE COMPUTADORES I - di.ubi.ptparaujo/Cadeiras/ArquitecturaComputadores... · ARQUITETURA DE COMPUTADORES I 2018-2019 Engenharia Informática(11537) Aquisição de conhecimentos

Em termos práticos foi necessário determinar um valor concreto para o valor da tensão a usar nos circuitos, tendo sido seleccionado o valor de 5V. Assim fez-se a seguinte atribuição (há outras possibilidades que serão abordadas mais tarde):

+5.0V

+2.0V

+0.8V

0V

valores nesta faixa [+2.0V ↔ +5.0V] correspondem ao bit “1”

valores nesta faixa [ 0V ↔ +0.8V] correspondem ao bit “0”

valores nesta faixa [ +0.8V ↔ +2.0V] são indeterminados, não

devendo ser usados em circuitos digitais (zona proibida)

Computação digital

“0” = bit zero, Falso(False), Nada, Baixo(Low/L), OFF bit “1” = bit um, Verdade(True), Tudo, Alto(High/H), ON

“1” = 5v

“0” = 0v

Page 19: ARQUITETURA DE COMPUTADORES I - di.ubi.ptparaujo/Cadeiras/ArquitecturaComputadores... · ARQUITETURA DE COMPUTADORES I 2018-2019 Engenharia Informática(11537) Aquisição de conhecimentos

Aula 1 (cont.)

Sistemas Analógicos vs Sistemas Digitais

Page 20: ARQUITETURA DE COMPUTADORES I - di.ubi.ptparaujo/Cadeiras/ArquitecturaComputadores... · ARQUITETURA DE COMPUTADORES I 2018-2019 Engenharia Informática(11537) Aquisição de conhecimentos

Convenções possíveis: Lógica positiva: O símbolo “1” está associado ao nível de tensão mais elevado(5v) e o símbolo “0” está associado ao nível de tensão mais baixo(0v) situação mais usada. Lógica negativa: O símbolo “1” está associado ao nível de tensão mais baixo(0v) e o símbolo “0” está associado ao nível de tensão mais elevado(5v).

Lógica Positiva Versus Lógica Negativa

Page 21: ARQUITETURA DE COMPUTADORES I - di.ubi.ptparaujo/Cadeiras/ArquitecturaComputadores... · ARQUITETURA DE COMPUTADORES I 2018-2019 Engenharia Informática(11537) Aquisição de conhecimentos

A tecnologia digital tem várias vantagens sobre a analógica:

• Circuitos mais simples de projetar e de entender

• Maior imunidade ao ruído (ou seja, a interferências)

• Maior precisão nos cálculos efectuados

• Mais fácil de armazenar a informação (apenas 2 bit)

Porém, as grandezas do mundo real são praticamente todas analógicas, pelo que a utilização dos computadores digitais implica a conversão entre analógico para digital e vice-versa.

Computação digital

Page 22: ARQUITETURA DE COMPUTADORES I - di.ubi.ptparaujo/Cadeiras/ArquitecturaComputadores... · ARQUITETURA DE COMPUTADORES I 2018-2019 Engenharia Informática(11537) Aquisição de conhecimentos

Conversão analógico <-> digital

O diagrama a seguir ilustra o processo de introdução do computador digital num mundo essencialmente analógico.

mundo real analógico

ex: temperatura, som,

luminosidade, velocidade ...

obter sinal

analógico

(sensores) digital

digital

actuar

(actuadores)

Conversor A/D

Analógico→Digital

Conversor D/A

Digital→Analógico

Processamento

Digital

Page 23: ARQUITETURA DE COMPUTADORES I - di.ubi.ptparaujo/Cadeiras/ArquitecturaComputadores... · ARQUITETURA DE COMPUTADORES I 2018-2019 Engenharia Informática(11537) Aquisição de conhecimentos

Conversão A/D (analógico digital) Trata-se de converter sinais que variam de forma contínua ao longo do tempo, em sinais discretos.

Para isso, são tomadas amostras a intervalos de tempos regulares do sinal analógico de entrada, as quais são convertidas para valores numéricos e armazenadas em forma de bit´s (0’s e 1’s).

É um processo conhecido por digitalização.

O número de amostras a tomar está relacionado com o tipo de sinal analógico a digitalizar. Ex: digitalizar um tema musical e guardar o resultado num certo formato (ex:MP3)

A/D

entrada saída

analógica digital

t0 t1 t2 t3 t4 t5 t6 t7 tempo

n5

n6

n4

n1 n0

som

0 t0 n0 (10011001)

1 t1 n1 (11000110)

2 t2 n2 (00110100)

3 t3 n3 (10101101)

. … ……………..

amostra tempo valor(exemplo)

(ex: ficheiro MP3)

Page 24: ARQUITETURA DE COMPUTADORES I - di.ubi.ptparaujo/Cadeiras/ArquitecturaComputadores... · ARQUITETURA DE COMPUTADORES I 2018-2019 Engenharia Informática(11537) Aquisição de conhecimentos

Conversão D/A (digital analógico)

Trata-se de converter valores numéricos discretos (armazenados em formas de bit’s), num sinal que varia continuamente ao longo do tempo.

A precisão da conversão está relacionada com o número de amostras disponíveis.

Ex: reproduzir o tema musical anteriormente digitalizado e cujas amostras foram guardadas num ficheiro de um certo formato (ex:MP3)

0 t0 n0 (10011001)

1 t1 n1 (11000110)

2 t2 n2 (00110100)

3 t3 n3 (10101101)

. … ……………..

amostra tempo valor (exemplo)

(ex: ficheiro MP3)

D/A

entrada saída

digital analógica

t0 t1 t2 t3 t4 t5 t6 t7 tempo

n5

n6

n4

n1 n0

som

Page 25: ARQUITETURA DE COMPUTADORES I - di.ubi.ptparaujo/Cadeiras/ArquitecturaComputadores... · ARQUITETURA DE COMPUTADORES I 2018-2019 Engenharia Informática(11537) Aquisição de conhecimentos

Aula 2

Álgebra de Boole – funções lógicas

Page 26: ARQUITETURA DE COMPUTADORES I - di.ubi.ptparaujo/Cadeiras/ArquitecturaComputadores... · ARQUITETURA DE COMPUTADORES I 2018-2019 Engenharia Informática(11537) Aquisição de conhecimentos

Álgebra de Boole

Em 1854, o matemático Inglês George Boole desenvolveu um conjunto de regras algébricas durante a sua investigação sobre as leis fundamentais da mente humana associadas ao raciocínio Álgebra de Boole Em 1938, Claude Shannon dos Bell Laboratories, adaptou a Álgebra de Boole à utilização em circuitos digitais.

Variáveis Lógicas e Funções Lógicas • São apenas usados dois valores: 1(verdade) e 0(falso)

• As variáveis são designadas por variáveis lógicas, variáveis de Boole, variáveis boolenas ou binárias;

• Uma variável lógica é uma variável cujo domínio compreende 2 valores lógicos, representados pelos símbolos 0 e 1;

• Uma função lógica, função de Boole, função boolena ou função binária é uma função cujos domínio e contradomínio (entradas/saídas) são constituídos pelo conjunto formado pelos símbolos {0 , 1}.

George Boole (1815-1864)

Claude Shannon (1916-2001)

Fonte: José Augusto Baranauskas, Departamento de Computação e Matemática – FFCLRP-USP

Page 27: ARQUITETURA DE COMPUTADORES I - di.ubi.ptparaujo/Cadeiras/ArquitecturaComputadores... · ARQUITETURA DE COMPUTADORES I 2018-2019 Engenharia Informática(11537) Aquisição de conhecimentos

• As tabelas de verdade podem representar qualquer função lógica;

• Uma tabela de verdade é um quadro formado por tantas colunas quantas as variáveis de uma dada função (variáveis de entrada ou independentes) mais a coluna correspondente à função (variável de saída ou dependente);

• Tipicamente as funções lógicas comportam diversas variáveis de entrada para apenas uma variável de saída (embora estas também possam ser várias);

• Nas linhas da tabela de verdade representam-se todas as combinações binárias possíveis das variáveis da função: N variáveis de entrada originam M=2N combinações possíveis;

Tabelas de Verdade

Ex: Tabela de Verdade N=2 variáveis de entrada: A, B combinações possíveis → M=2N=22=4 S : função ou variável de saída

entrada saída

4 combinações possíveis

Page 28: ARQUITETURA DE COMPUTADORES I - di.ubi.ptparaujo/Cadeiras/ArquitecturaComputadores... · ARQUITETURA DE COMPUTADORES I 2018-2019 Engenharia Informática(11537) Aquisição de conhecimentos

As funções lógicas elementares são:

• identidade (igualdade)

• negação, complementação, inversão: NÃO → NOT

• conjunção, intersecção, produto lógico: E → AND

• disjunção, reunião, soma lógica: OU → OR

A partir destas funções elementares é possível definir outras funções básicas:

• NÃO E / NOT AND → NAND

• NÃO OU / NOT OR → NOR

• OU EXCLUSIVO / EXCLUSIVE OR → XOR

Funções Lógicas Elementares

As funções NÃO E (NAND) e NÃO OU (NOR) dizem-se completas (universais) devido ao facto de

ser possível construir qualquer função lógica com base numa destas duas funções.

Page 29: ARQUITETURA DE COMPUTADORES I - di.ubi.ptparaujo/Cadeiras/ArquitecturaComputadores... · ARQUITETURA DE COMPUTADORES I 2018-2019 Engenharia Informática(11537) Aquisição de conhecimentos

Função Identidade (Igualdade)

S(A) = A : saída igual à entrada

Tabela de Verdade/Símbolo

Funções Lógicas Elementares

Função Intersecção (Produto Lógico)

S(A, B) = A.B → AND : verdade se e só se todas as entradas forem verdade

Tabela de Verdade/Símbolo

Função Reunião(Soma Lógica)

S(A, B) = A+B → OR : verdade desde que uma ou mais entradas sejam verdade

Tabela de Verdade/Símbolo

A S

A S

A S

A

S B

A

S B

Função Negação (Complementação ou Inversão)

S(A) = A → NOT : saída é o inverso da entrada

Tabela de Verdade/Símbolo

Page 30: ARQUITETURA DE COMPUTADORES I - di.ubi.ptparaujo/Cadeiras/ArquitecturaComputadores... · ARQUITETURA DE COMPUTADORES I 2018-2019 Engenharia Informática(11537) Aquisição de conhecimentos

Funções Lógicas Básicas

Função OU EXCLUSIVO (EXCLUSIVE OR) →

XOR:

saída é verdade se o nº de entradas verdade for ímpar

A

S B

A

S B

A

S B

Função NÃO E → NAND: S(A, B) = A.B

corresponde à negação da função AND

Função NÃO OU → NOR: S(A, B) = A + B

corresponde à negação da função OR

Page 31: ARQUITETURA DE COMPUTADORES I - di.ubi.ptparaujo/Cadeiras/ArquitecturaComputadores... · ARQUITETURA DE COMPUTADORES I 2018-2019 Engenharia Informática(11537) Aquisição de conhecimentos

Funções Lógicas – interpretação física

Convenções

interruptor aberto = 0 interruptor fechado = 1

lâmpada apagada = 0 lâmpada acesa = 1

- Fonte de alimentação + (pilha, bateria,...)

Page 32: ARQUITETURA DE COMPUTADORES I - di.ubi.ptparaujo/Cadeiras/ArquitecturaComputadores... · ARQUITETURA DE COMPUTADORES I 2018-2019 Engenharia Informática(11537) Aquisição de conhecimentos

Funções Lógicas - interpretação física : AND

Função AND : S(A, B) = A.B A

S B

Fonte: José Augusto Baranauskas, Departamento de Computação e Matemática – FFCLRP-USP

Page 33: ARQUITETURA DE COMPUTADORES I - di.ubi.ptparaujo/Cadeiras/ArquitecturaComputadores... · ARQUITETURA DE COMPUTADORES I 2018-2019 Engenharia Informática(11537) Aquisição de conhecimentos

Função AND : S(A, B) = A.B A

S B

Funções Lógicas - interpretação física : AND (cont.)

Fonte: José Augusto Baranauskas, Departamento de Computação e Matemática – FFCLRP-USP

Page 34: ARQUITETURA DE COMPUTADORES I - di.ubi.ptparaujo/Cadeiras/ArquitecturaComputadores... · ARQUITETURA DE COMPUTADORES I 2018-2019 Engenharia Informática(11537) Aquisição de conhecimentos

Funções Lógicas – interpretação física: OR

Função OR : S(A, B) = A+B A

S B

Fonte: José Augusto Baranauskas, Departamento de Computação e Matemática – FFCLRP-USP

Page 35: ARQUITETURA DE COMPUTADORES I - di.ubi.ptparaujo/Cadeiras/ArquitecturaComputadores... · ARQUITETURA DE COMPUTADORES I 2018-2019 Engenharia Informática(11537) Aquisição de conhecimentos

Funções Lógicas – interpretação física: OR (cont.)

Função OR : S(A, B) = A+B A

S B

Fonte: José Augusto Baranauskas, Departamento de Computação e Matemática – FFCLRP-USP

Page 36: ARQUITETURA DE COMPUTADORES I - di.ubi.ptparaujo/Cadeiras/ArquitecturaComputadores... · ARQUITETURA DE COMPUTADORES I 2018-2019 Engenharia Informática(11537) Aquisição de conhecimentos

Funções Lógicas – interpretação física : NOT

A S Função NOT): S(A) = A

Fonte: José Augusto Baranauskas, Departamento de Computação e Matemática – FFCLRP-USP

Page 37: ARQUITETURA DE COMPUTADORES I - di.ubi.ptparaujo/Cadeiras/ArquitecturaComputadores... · ARQUITETURA DE COMPUTADORES I 2018-2019 Engenharia Informática(11537) Aquisição de conhecimentos

Resumo das Funções Lógicas

Fonte: José Augusto Baranauskas, Departamento de Computação e Matemática – FFCLRP-USP

Page 38: ARQUITETURA DE COMPUTADORES I - di.ubi.ptparaujo/Cadeiras/ArquitecturaComputadores... · ARQUITETURA DE COMPUTADORES I 2018-2019 Engenharia Informática(11537) Aquisição de conhecimentos

Expressões Lógicas Equivalentes, Complementares e Duais

Duas expressões lógicas são duais quando se pode obter uma a partir da outra, nomeadamente: • transformando todos os “.” em “+” e todos os “+” em “.” • transformando todos os “0” em “1” e todos os “1” em “0” • mantendo as ocorrências das variáveis

ex: a expressão lógica 1.A + B.C + 0 é dual de (0+A) . (B+C) . 1

Duas expressões lógicas (S1,S2) são complementares quando para todas as combinações possíveis nas respectivas tabelas de verdade (linhas), se tem S1=S2 (S1=0/S2=1, ou, S1=1/S2=0), ou seja, todas as linhas são complementares.

Uma expressão lógica é um conjunto de variáveis lógicas e constantes lógicas (0, 1) associadas entre si pelas funções lógicas elementares (“.” e “+”). A existência de uma variável ou do respetivo complemento é designada por ocorrência ou literal. ex: S = A.B + B.1 + C.0

Duas expressões lógicas (S1,S2) são equivalentes quando para todas as combinações possíveis nas respectivas tabelas de verdade (linhas), se tem S1=S2 (S1=S2=0, ou, S1=S2=1), ou seja, todas as linhas são iguais. Se S1≠S2 em pelo menos uma linha, então S1 e S2 não são equivalentes.

Page 39: ARQUITETURA DE COMPUTADORES I - di.ubi.ptparaujo/Cadeiras/ArquitecturaComputadores... · ARQUITETURA DE COMPUTADORES I 2018-2019 Engenharia Informática(11537) Aquisição de conhecimentos

Formas Canónicas

forma canónica (geral): de uma função booleana é qualquer produto de somas ou soma de produtos em que cada um dos termos envolve todas as variáveis, em forma directa ou complementada. As formas canónicas são úteis na análise de circuitos lógicos, nomeadamente para a simplificação de funções lógicas, usando métodos gráficos ou numéricos. forma canónica soma de produtos: quando a expressão de uma função lógica é constituída por somas lógicas de produtos lógicos que contêm todas as variáveis lógicas da função. Esta forma canónica é também designada por primeira forma canónica, sendo os produtos (parcelas) designados por mintermos.

Exemplo: S(A,B,C) = A . B . C + C . B . A + B . A . C forma canónica produto de somas: quando a expressão de uma função lógica é constituída por produtos lógicos de somas lógicas que contêm todas as variáveis lógicas da função. Esta forma canónica é também designada por segunda forma canónica, sendo os factores designados por maxtermos.

Exemplo: S(A,B,C) = (A+B+C ) . ( A +B+C) . ( A +B+C )

Page 40: ARQUITETURA DE COMPUTADORES I - di.ubi.ptparaujo/Cadeiras/ArquitecturaComputadores... · ARQUITETURA DE COMPUTADORES I 2018-2019 Engenharia Informática(11537) Aquisição de conhecimentos

Formas Mínimas

forma mínima: aquela em que o somatório do número de termos/factores e de literais é mínimo. São usadas para implementar os circuitos da forma o mais simples possível. forma mínima soma de produtos: quando a função lógica é constituída por uma soma de produtos tal que o somatório do número de produtos e do número de literais é mínimo.

exemplo: S(A,B,C) = A . B . C + B . C

forma mínima produto de somas: quando a função lógica é constituída por um produto de somas tal que o somatório do número de somas e do número de literais é mínimo.

exemplo: S(A,B,C)= (B+C).(B +C).(A +C) Notas: 1) a forma mínima de uma função lógica não é necessariamente única nem conduz necessariamente à implementação mais simples. 2) a engenharia de sistemas digitais tem por objectivo a implementação de circuitos que executem as funções desejadas a um custo mínimo. 3) a minimização (obtenção das formas mínimas) da implementação de funções lógicas constitui uma fase importante do projecto de sistemas digitais.

Page 41: ARQUITETURA DE COMPUTADORES I - di.ubi.ptparaujo/Cadeiras/ArquitecturaComputadores... · ARQUITETURA DE COMPUTADORES I 2018-2019 Engenharia Informática(11537) Aquisição de conhecimentos

Aula 3

Álgebra de Boole – axiomas e teoremas

Page 42: ARQUITETURA DE COMPUTADORES I - di.ubi.ptparaujo/Cadeiras/ArquitecturaComputadores... · ARQUITETURA DE COMPUTADORES I 2018-2019 Engenharia Informática(11537) Aquisição de conhecimentos

Axiomas e Teoremas da Álgebra de Boole

Axioma: afirmação aceite como óbvia e verdadeira, que não é provada ou demonstrada, sendo considerada ponto de partida para a construção ou aceitação de uma teoria. Teorema: afirmação que pode ser provada como sendo verdadeira através de outras afirmações já demonstradas, como outros teoremas, ou através de axiomas.

Provar é o processo de mostrar que um teorema está correto. Princípio da dualidade: aplica-se tanto a axiomas como a teoremas. Se tivermos um axioma/teorema relacionando variáveis lógicas, pode obter-se um outro axioma/teorema fazendo as trocas de símbolos e sinais associados (“0”↔”1” , “.”↔”+”)

Os dois axiomas/teoremas são designados por axiomas/teoremas duais.

Page 43: ARQUITETURA DE COMPUTADORES I - di.ubi.ptparaujo/Cadeiras/ArquitecturaComputadores... · ARQUITETURA DE COMPUTADORES I 2018-2019 Engenharia Informática(11537) Aquisição de conhecimentos

Axiomas e Teoremas da Álgebra de Boole

Propriedades 1) A+B = B+A ; A.B = B.A comutatividade OR/AND) 2.1) A.(B+C) = (A.B)+(A.C) distributividade em relação ao produto 2.2) A+(B.C) = (A+B).(A+C) distributividade em relação à soma, inválida em álgebra convencional 3) A+B+C = (A+B)+C = A+(B+C) ; A.B.C = (A.B).C = A.(B.C) associatividade OR/AND NOTA: as funções NAND, NOR e XOR não são associativas ( ex: A.B.C ≠ (A.B) . C ) (ex. A=0,B=0,C=1) Precedências: o produto tem precedência sobre a soma, ex: A+B.C = A+(B.C) alterar precedência usar parêntesis, ex: (A+B).C

1) Seja A uma variável lógica A=0 ou A=1 (A=0 se A≠1 , A=1 se A≠0)

2) produto lógico (AND) 0.0 = 0 ; 0.1 = 1.0 = 0 ; 1.1 = 1 3) soma lógica (OR) 0+0 = 0 ; 0+1 = 1+0 = 1 ; 1+1 = 1 4) complemento, negação (NOT) 0 = 1 ; 1 = 0

Page 44: ARQUITETURA DE COMPUTADORES I - di.ubi.ptparaujo/Cadeiras/ArquitecturaComputadores... · ARQUITETURA DE COMPUTADORES I 2018-2019 Engenharia Informática(11537) Aquisição de conhecimentos

Axiomas e Teoremas da Álgebra de Boole

1) A+A = A ; A.A = A (idempotência)

2) A+0 = A ; A.1 = A (0=elemento neutro soma lógica; 1=elemento neutro produto lógico)

3) A+1 = 1 ; A.0 = 0 (1=elemento absorvente soma lógica ; 0=elemento absorvente produto lógico)

4) A = A (involução)

5) A+A = 1 ; A.A = 0 (complementos)

6) A+A.B = A ; A.(A+B) = A (absorção) [prova: A+A.B = A.(1+B) = A.1 = A]

7) A.B+A.B = A ; (A+B).(A+B) = A (adjacência) [prova: A.B+A.B = A.(B+B) = A.1 = A]

8) A+A.B = A+B ; A.(A+B) = A.B (redundância) [prova: ? ]

NOTA: existem outros teoremas para além dos apresentados a seguir

Page 45: ARQUITETURA DE COMPUTADORES I - di.ubi.ptparaujo/Cadeiras/ArquitecturaComputadores... · ARQUITETURA DE COMPUTADORES I 2018-2019 Engenharia Informática(11537) Aquisição de conhecimentos

Leis de DeMorgan

O Teorema de DeMorgan estabelece um procedimento para complementar funções lógicas:

Fonte: José Augusto Baranauskas, Departamento de Computação e Matemática – FFCLRP-USP

A . B = A + B A + B = A . B ou A . B = A + B A + B = A . B

Page 46: ARQUITETURA DE COMPUTADORES I - di.ubi.ptparaujo/Cadeiras/ArquitecturaComputadores... · ARQUITETURA DE COMPUTADORES I 2018-2019 Engenharia Informática(11537) Aquisição de conhecimentos

Extensão a 3 (ou mais) variáveis

AND: S(A, B, C) = A.B.C = (A.B).C

OR: S(A, B, C) = A+B+C = (A+B)+C

A

B B S C

A

B S C

A

B S

C

A

B S

C

A.B.C = A + B + C A . B . C= A + B + C A + B + C = A . B .C A + B + C= A . B . C

Leis de DeMorgan

=

=

Page 47: ARQUITETURA DE COMPUTADORES I - di.ubi.ptparaujo/Cadeiras/ArquitecturaComputadores... · ARQUITETURA DE COMPUTADORES I 2018-2019 Engenharia Informática(11537) Aquisição de conhecimentos

NOT a partir de NAND / NOR

A S Função NOT): S(A)= A

A

S

NAND: S(A, B)= A.B , se B=A A.A = A

NOR: S(A, B)= A + B , se B=A A+A = A

A

S

A S

A

S

A

S

= =

Page 48: ARQUITETURA DE COMPUTADORES I - di.ubi.ptparaujo/Cadeiras/ArquitecturaComputadores... · ARQUITETURA DE COMPUTADORES I 2018-2019 Engenharia Informática(11537) Aquisição de conhecimentos

AND/OR a partir de NAND / NOR

= A

S B

A

S B

A

S B

A

S B

AND: S(A, B)= A.B = A.B

= A

S B

A

S B

A

S B

A

S B

OR: S(A, B)= A+B = A+B

Page 49: ARQUITETURA DE COMPUTADORES I - di.ubi.ptparaujo/Cadeiras/ArquitecturaComputadores... · ARQUITETURA DE COMPUTADORES I 2018-2019 Engenharia Informática(11537) Aquisição de conhecimentos

Leis de DeMorgan

A . B = A + B A + B = A . B → A . B = A + B A + B = A . B

A B = S =

A B

S

A B

S

A B = S =

A B

S

A B

S

→ ???

Page 50: ARQUITETURA DE COMPUTADORES I - di.ubi.ptparaujo/Cadeiras/ArquitecturaComputadores... · ARQUITETURA DE COMPUTADORES I 2018-2019 Engenharia Informática(11537) Aquisição de conhecimentos

Análise de circuitos digitais

Análise: processo de decomposição de uma substância ou tópico complexo nos seus diversos elementos constituintes, a fim de se obter uma melhor compreensão do seu funcionamento. Circuitos digitais • A todo o circuito digital corresponde uma expressão booleana.

• Um circuito, por mais complexo que seja, é composto pela interligação de blocos lógicos básicos.

• Para obter a expressão lógica nas saídas de um circuito digital, parte-se das entradas em direção às saídas, escrevendo na saída de cada porta lógica a expressão equivalente.

Page 51: ARQUITETURA DE COMPUTADORES I - di.ubi.ptparaujo/Cadeiras/ArquitecturaComputadores... · ARQUITETURA DE COMPUTADORES I 2018-2019 Engenharia Informática(11537) Aquisição de conhecimentos

Análise de circuitos digitais

Ex: obter as expressões booleanas e a tabela de verdade geradas pelo seguinte circuito lógico:

A

C S

D

= A . (C + D)

Tabela de verdade Tabela de verdade simplificada

Page 52: ARQUITETURA DE COMPUTADORES I - di.ubi.ptparaujo/Cadeiras/ArquitecturaComputadores... · ARQUITETURA DE COMPUTADORES I 2018-2019 Engenharia Informática(11537) Aquisição de conhecimentos

Síntese de circuitos digitais

Síntese: reunião de vários elementos de modo a formar um todo unificado e coerente. Circuitos digitais • Síntese de um circuito digital: dada uma expressão booleana obter um circuito lógico correspondente;

• As expressões boolenas são obtidas a partir do enunciado do problema a resolver, regra geral em forma de tabelas de verdade.

Page 53: ARQUITETURA DE COMPUTADORES I - di.ubi.ptparaujo/Cadeiras/ArquitecturaComputadores... · ARQUITETURA DE COMPUTADORES I 2018-2019 Engenharia Informática(11537) Aquisição de conhecimentos

Problema: controlo do limpa-pára-brisas (LPB) de um automóvel

Um automóvel tem um sistema de LPB controlado por uma alavanca de comutador (C) junto ao volante ou por um sensor de chuva (S) colocado no vidro.

O LPB deve actuar sempre que estando ligada a chave da ignição(I), o condutor tenha ligado o comutador(C) ou o sensor(S) detecte chuva.

Síntese de circuitos digitais

Tabela de Verdade: contém todas as combinações possíveis de I, C e S, além da saída LPB N=3 variáveis M = 2N = 23 = 8 casos possíveis

Variáveis lógicas

Entrada Saída

I : chave ignição 0=desligada 1=ligada LPB: escovas do limpa-pára-brisas C : comutador manual 0=desligado 1=ligado 0=parado 1=a funcionar S : sensor de chuva 0=não chove 1=chove

(tabela simplificada)

Page 54: ARQUITETURA DE COMPUTADORES I - di.ubi.ptparaujo/Cadeiras/ArquitecturaComputadores... · ARQUITETURA DE COMPUTADORES I 2018-2019 Engenharia Informática(11537) Aquisição de conhecimentos

Síntese de circuitos digitais

Extração da expressão do circuito mintermos : extracção pelos “1’s” da função (combinações aonde a função vale “1”) → obtém-se uma expressão canónica do tipo AND-OR (soma de produtos)

I . C . S

Regras para extracção dos termos

0) cada termo(linha) vai ser um produto

1) considerar apenas termos(linhas) aonde a função vale “1”

2) para cada variável de entrada:

2.1) se essa variável vale “1” entra diretamente no termo

2.2) se a variável vale “0” então negada no termo

I . C . S I . C . S

Tabela de Verdade

Circuito resultante diretamente da expressão... bastante complexo!

LPB = I . C . S + I . C . S + I . C . S (forma canónica)

Page 55: ARQUITETURA DE COMPUTADORES I - di.ubi.ptparaujo/Cadeiras/ArquitecturaComputadores... · ARQUITETURA DE COMPUTADORES I 2018-2019 Engenharia Informática(11537) Aquisição de conhecimentos

Síntese de circuitos digitais

Circuito digital correspondente (muito mais simples que o anterior) LPB = I . ( S + C )

Simplificar a expressão obtida: obtenção de uma forma mínima

LPB = I . C . S + I . C . S + I . C . S (forma canónica)

I . ( C . S + C . S + C . S ) (p.distributiva)

I . ( C . S + C . (S + S) ) (p.distributiva)

I . ( C . S + C . 1 ) = I . ( C . S + C) (redundância)

I . ( S + C )

Page 56: ARQUITETURA DE COMPUTADORES I - di.ubi.ptparaujo/Cadeiras/ArquitecturaComputadores... · ARQUITETURA DE COMPUTADORES I 2018-2019 Engenharia Informática(11537) Aquisição de conhecimentos

Aula 4

Simplificação de funções lógicas

Page 57: ARQUITETURA DE COMPUTADORES I - di.ubi.ptparaujo/Cadeiras/ArquitecturaComputadores... · ARQUITETURA DE COMPUTADORES I 2018-2019 Engenharia Informática(11537) Aquisição de conhecimentos

Síntese de circuitos digitais(cont.)

Extracção da expressão do circuito

maxtermos extracção pelos “0’s” da função (combinações aonde a função vale “0”) obtém-se uma expressão canónica do tipo OR-AND (produto de somas)

Regras para extracção dos termos 0) cada termo vai ser uma soma (OR) 1) considerar cada linha aonde a função vale “0” 2) para cada variável de entrada: 2.1) se essa variável vale “0” então entra diretamente 2.2) se a variável vale “1” então entra negada

I + C + S

I + C + S

Tabela de Verdade

Circuito resultante diretamente da expressão... bastante complexo!

I + C + S I + C + S

I + C + S

LPB = (I + C + S) . (I + C + S) . (I + C + S) . (I + C + S) . (I + C + S)

Page 58: ARQUITETURA DE COMPUTADORES I - di.ubi.ptparaujo/Cadeiras/ArquitecturaComputadores... · ARQUITETURA DE COMPUTADORES I 2018-2019 Engenharia Informática(11537) Aquisição de conhecimentos

Síntese de circuitos digitais

Circuito digital correspondente (igual ao obtido anteriormente) LPB = I . ( S + C )

Simplificar a expressão obtida: obtenção de uma forma mínima

LPB = (I + C + S) . (I + C + S) . (I + C + S) . (I + C + S) . (I + C + S) (forma canónica)

(I + C) . (S + S) . (I + C) . (S + S) . (I + C + S) (distributividade)

(I + C) . (I + C) . (I + C + S) (adjacência) [ (A+B).(A+B)=A ]

I . (I + C + S) (redundância)

I . (C + S) = I . (S + C) igual à anterior

Page 59: ARQUITETURA DE COMPUTADORES I - di.ubi.ptparaujo/Cadeiras/ArquitecturaComputadores... · ARQUITETURA DE COMPUTADORES I 2018-2019 Engenharia Informática(11537) Aquisição de conhecimentos

Simplificar

• reduzir o número de termos

• reduzir as variáveis em cada termo

• (converter para um único tipo de porta lógica, ex: AND,OR,NAND,NOR,...)

Métodos 1) Algébrico: a simplificação algébrica (por aplicação das regras da Álgebra de Boole) é trabalhosa e morosa, requerendo alguma “arte”; 2) Gráfico: permitem chegar rapidamente a expressões mais simples, embora não garantam de imediato a forma mínima;

2.1) Mapa de Karnaugh: aplicável facilmente para funções de até 4 variáveis (embora seja válido para outro nº de variáveis) 2.2) Mapa da Quine-McCluskey: para mais de 4 variáveis (embora seja válido para menos)

Métodos de simplificação

Page 60: ARQUITETURA DE COMPUTADORES I - di.ubi.ptparaujo/Cadeiras/ArquitecturaComputadores... · ARQUITETURA DE COMPUTADORES I 2018-2019 Engenharia Informática(11537) Aquisição de conhecimentos

Mapa de Karnaugh

Tabela de Verdade original Tabela de Verdade reagrupada

trocar as linhas de modo que só se altere uma variável em linhas adjacentes

I . C . S I . C . S I . C . S

I . C . S

I . C . S

I . C . S

LPB = I . C . S + I . C . S + I . C . S LPB = I . C . S + I . C . S + I . C . S

• Equivalente à Tabela de Verdade → duas formas de representar a mesma realidade

• Baseia-se na aplicação sucessiva do teorema da complementação: A + A = 1

Exs. a) X . Y + X . Y = X (Y + Y) = X . 1 = X

b) X . Y . Z + X . Y . Z + X . Y . Z + X . Y . Z = X . Y (Z + Z) + X . Y ( Z + Z) = X (Y + Y) = X

Problema do LPB

Page 61: ARQUITETURA DE COMPUTADORES I - di.ubi.ptparaujo/Cadeiras/ArquitecturaComputadores... · ARQUITETURA DE COMPUTADORES I 2018-2019 Engenharia Informática(11537) Aquisição de conhecimentos

Mapa de Karnaugh

I . C . S + I . C . S = I . C (S + S) = I . C

I . C . S + I . C . S = I . S (C + C) = I . S

Tabela de Verdade reagrupada

I . C . S

I . C . S

I . C . S

termos diferem em S S é eliminada

termos diferem em C C é eliminada

LPB = I . C + I . S

= I (C + S)

(expressão anterior)

Algebricamente

LPB = I . C . S + I . C . S + I . C . S

= I . C . S + I . C . S + [I . C . S] + I . C . S (idempotência) - [I.C.S] vai pertencer a dois grupos

= I . C (S + S) + I . S (C + C) (complementação)

= I . C + I . S = I (C + S) (distributividade)

Page 62: ARQUITETURA DE COMPUTADORES I - di.ubi.ptparaujo/Cadeiras/ArquitecturaComputadores... · ARQUITETURA DE COMPUTADORES I 2018-2019 Engenharia Informática(11537) Aquisição de conhecimentos

Mapa de Karnaugh

Tabela de Verdade

I . C . S

I . C . S

I . C . S

LPB = I . C + I . S (não é forma mínima)

I . (C + S) (forma mínima)

LPB = I . C . S + I . C . S + I . C . S

I . ( C . S + C . S + C . S)

I . ( C ( S + S) + C . S)

I . ( C + C . S )

I . ( C + S )

Mapa de Karnaugh

S = 1

I = 1

I . C . S I . C . S I . C . S I . C . S

I . C . S I . C . S I . C . S I . C . S

0 1 1 1

0 0 0 0

C = 1

Page 63: ARQUITETURA DE COMPUTADORES I - di.ubi.ptparaujo/Cadeiras/ArquitecturaComputadores... · ARQUITETURA DE COMPUTADORES I 2018-2019 Engenharia Informática(11537) Aquisição de conhecimentos

Mapa de Karnaugh Construção do mapa

1) desenhar um quadrilátero com M=2N células, tantas quantas as linhas da tabela de verdade (N=nº de variáveis independentes) 2) numerar as células de modo correspondente às diferentes combinações das variáveis independentes, de tal forma que entre duas células adjacentes apenas varie uma delas (quadriculas adjacentes são aquelas com uma aresta comum, incluindo as dos lados exteriores do quadrilátero pois na realidade a figura é um toro)

N=2 , M=4 N=3 , M=8 N=4 , M=16

A

B

A

B

C A

B

C

D

Convenção: nas células abrangidas pelo traço a correspondente variável toma o valor “1” , nas restantes toma o valor “0”

A=0 A=0 B=0 B=1 A=1 A=1 B=0 B=1

A=0 B=1 C=0

A=1 B=0 C=1

A=0 B=1 C=0 D=1

A=1 B=0 C=0 D=1

A B

A=1 A=0 B=0 B=1 A=1 A=0 B=0 B=1

Page 64: ARQUITETURA DE COMPUTADORES I - di.ubi.ptparaujo/Cadeiras/ArquitecturaComputadores... · ARQUITETURA DE COMPUTADORES I 2018-2019 Engenharia Informática(11537) Aquisição de conhecimentos

Mapa de Karnaugh

Regras do mapa 1) em cada célula do mapa coloca-se o correspondente valor da tabela de verdade;

2) agrupam-se o maior número possível de células com valores “1” (ou “0”) adjacentes, em grupos de 2n

(1, 2, 4, 8, 16) células, até todos estarem agrupados;

2.1) deve considerar-se o menor número possível de grupos, desde que todas as células com “1” (ou “0”) estejam englobadas;

2.2) cada célula com “1” (ou “0”) pode participar em mais de um grupo;

2.3) diz-se que um grupo é primário se não está totalmente incluído noutro grupo maior; devem ser considerados apenas os grupos primários, não devendo ser considerados grupos dentro de grupos (pois são termos redundantes que não interessam para a simplificação);

3) cada grupo dá origem a um termo do qual são eliminadas as variáveis que estão simultaneamente dentro e fora do grupo; por cada grupo de U=2V células, são eliminadas V variáveis na expressão do grupo:

Page 65: ARQUITETURA DE COMPUTADORES I - di.ubi.ptparaujo/Cadeiras/ArquitecturaComputadores... · ARQUITETURA DE COMPUTADORES I 2018-2019 Engenharia Informática(11537) Aquisição de conhecimentos

Mapa de Karnaugh

Exemplo: N=4 variáveis , M=24=16 combinações

A

B

C

D

1

1

1 1

1 1 1

Tabela de Verdade Mapa de Karnaugh

Extracção da expressão do circuito, pelos mintermos:

• extracção pelos “1’s” da função (combinações aonde a função vale “1”) • obtém-se uma expressão canónica do tipo AND-OR [soma de produtos: A.B + C.D +...] • marcar no mapa as células em que a função vale “1” – agrupar segundo as regras indicadas

Page 66: ARQUITETURA DE COMPUTADORES I - di.ubi.ptparaujo/Cadeiras/ArquitecturaComputadores... · ARQUITETURA DE COMPUTADORES I 2018-2019 Engenharia Informática(11537) Aquisição de conhecimentos

A

B

C

D

1

1

1 1

1 1 1

Mapa de Karnaugh

grupo mais favorável, elimina 2 variáveis

X = A . B

células adjacentes elimina 1 variável

Y = B . C . D

grupo menos favorável, não elimina variáveis

Z = A . B . C . D

F = X + Y + Z = A . B + B . C . D + A . B . C . D (a expressão pode ainda ser simplificada)

grupo redundante: os seus 1’s já estão

agrupados em outros grupos

errado! células não adjacentes

errado! nº de 1’s não é potência de 2

Em cada célula do grupo:

• se uma variável muda de valor será eliminada

• se uma variável tem o valor “1” (a célula está abrangida pelo traço dessa variável) então entra directamente

• se toma o valor “0” (está fora do traço) então entra negada

Page 67: ARQUITETURA DE COMPUTADORES I - di.ubi.ptparaujo/Cadeiras/ArquitecturaComputadores... · ARQUITETURA DE COMPUTADORES I 2018-2019 Engenharia Informática(11537) Aquisição de conhecimentos

Mapa de Karnaugh Funções incompletamente especificadas

não é fornecida informação sobre todos os casos possíveis de acontecer;

determinadas combinações das entradas não estão previstas ou são impossíveis;

• nestas situações o resultado da função considera-se como indiferente (don’t care), sendo representado por X na tabela ou mapa de Karnaugh;

• o valor X não é um valor lógico válido, significa apenas que de momento é um valor indiferente e que mais tarde terá de assumir um valor válido (“0” ou “1”); no mapa de Karnaugh, X será substituído pelo valor que conduzir a uma maior simplificação;

Ex: uma barragem tem uma comporta que permite despejar a água quando em demasia. Para tal dispõe de dois sensores: C(barragem cheia) e V(barragem vazia). Pretende-se projetar um circuito para controlar o estado da comporta.

Tabela de Verdade

C

V

0 0

1 X

opção1 : X=0 → Comporta = C . V

opção 2: X=1 → Comporta = C

Mapa de Karnaugh

C

V

com

po

rta

Entradas: C , V 0=sem água 1=com água Saída: Comporta 0=fechada 1=aberta

√ melhor caso

Page 68: ARQUITETURA DE COMPUTADORES I - di.ubi.ptparaujo/Cadeiras/ArquitecturaComputadores... · ARQUITETURA DE COMPUTADORES I 2018-2019 Engenharia Informática(11537) Aquisição de conhecimentos

Aula 5

Sistemas de numeração

Page 69: ARQUITETURA DE COMPUTADORES I - di.ubi.ptparaujo/Cadeiras/ArquitecturaComputadores... · ARQUITETURA DE COMPUTADORES I 2018-2019 Engenharia Informática(11537) Aquisição de conhecimentos

Codificação ↔ Descodificação

Codificação

• fazer corresponder os dados a tratar a um conjunto de sinais digitais (“0” e “1”) • representação de dados em formato binário

ex: valores numéricos , caracteres alfanuméricos , imagens , sons , ... → valores binários

Descodificação

• traduzir valores binários para outras representações

ex: valores binários → valores numéricos , caracteres alfanuméricos , imagens , sons , ...

Processamento

Sistema Digital

Interpretação

???

??? descodificação

codificação

Page 70: ARQUITETURA DE COMPUTADORES I - di.ubi.ptparaujo/Cadeiras/ArquitecturaComputadores... · ARQUITETURA DE COMPUTADORES I 2018-2019 Engenharia Informática(11537) Aquisição de conhecimentos

Sistemas de Numeração

Um valor N pode ser representado em decimal pela expressão:

N = ∑ Ai Bi = An Bn + An-1 Bn-1 + ... + A1 B1 + A0 B0 + A-1 B-1 + A-2 B-2 + ...

B – base do sistema de numeração (ou radix = nº de algarismos da base, incluindo o zero)

Ai – algarismos da base

i – índice posicional do algarismo

Bi – peso ou significância do algarismo Ai

Notas

1) Numa base B o algarismo de maior valor é B-1 (ex. decimal: B=10, maior algarismo 9)

2) Se B > 10, usam-se letras para representar os algarismos de valor maior que 9

Page 71: ARQUITETURA DE COMPUTADORES I - di.ubi.ptparaujo/Cadeiras/ArquitecturaComputadores... · ARQUITETURA DE COMPUTADORES I 2018-2019 Engenharia Informática(11537) Aquisição de conhecimentos

Exemplos de Sistemas de Numeração

(valores inteiros) Decimal: base → B = 10 algarismos → Ai = 0 , 1 , 2 , 3 , 4 , 5 , 6 , 7 , 8 , 9 pesos → Bi = 10i

ex: 12810 = 1 x 102 + 2 x 101 + 8 x 100 = 100 + 20 + 8 = 128 Binário: base → B = 2 algarismos → Ai = 0 , 1 pesos → Bi = 2i

ex: 1012 = 1 x 22 + 0 x 21 + 1 X 20 = 4 + 0 + 1 = 5 Octal: base → B = 8 algarismos → Ai = 0 , 1 , 2 , 3 , 4 , 5 , 6 , 7 pesos → Bi = 8i

ex: 248 = 2 x 81 + 4 x 80 = 16 + 4 = 20 Hexadecimal(hexa): base → B = 16 algarismos → Ai = 0 , 1 , 2 , 3 , 4 , 5 , 6 , 7 , 8 , 9 , A , B , C , D , E , F pesos → Bi = 16i

ex: 7CD16 = 7 x 162 + 12 x 161 + 13 x 160 = 1792 + 192 + 13 = 1997

Page 72: ARQUITETURA DE COMPUTADORES I - di.ubi.ptparaujo/Cadeiras/ArquitecturaComputadores... · ARQUITETURA DE COMPUTADORES I 2018-2019 Engenharia Informática(11537) Aquisição de conhecimentos

Números em diversas bases

TABELA – correspondência de números

Note-se que para um certo número n de bits o maior valor decimal representado é 2n-1

Exs: n = 3 bits , maior valor = 23-1 = 7 n = 4 bits , maior valor = 24-1 = 15(F)

Page 73: ARQUITETURA DE COMPUTADORES I - di.ubi.ptparaujo/Cadeiras/ArquitecturaComputadores... · ARQUITETURA DE COMPUTADORES I 2018-2019 Engenharia Informática(11537) Aquisição de conhecimentos

Conversão de Bases

I : parte inteira → divisões inteiras sucessivas por 2 - parar quando o quociente for zero - tomar restos por ordem inversa da sua obtenção

N = I.F F: parte fraccionária → multiplicações sucessivas por 2 - parar quando se atingir nº casas decimais pretendido - tomar parte inteira dos resultados por ordem da sua obtenção

Decimal(10) → Binário(2)

Page 74: ARQUITETURA DE COMPUTADORES I - di.ubi.ptparaujo/Cadeiras/ArquitecturaComputadores... · ARQUITETURA DE COMPUTADORES I 2018-2019 Engenharia Informática(11537) Aquisição de conhecimentos

Conversão de Bases Exemplo Parte inteira = 37 → converter por divisões inteiras sucessivas por 2 Converter para binário N = 37.41 Parte decimal = 0.41 → converter por multiplicações sucessivas por 2

Parte inteira

37 2 1 18 2 0 9 2 1 4 2 0 2 2 0 1 2 1 0

1 7

(LSB)

(MSB)

Parte decimal

37 = 1 0 0 1 0 1 (MSB) (LSB)

0.41 * 2 0 .82 * 2 1 .64 * 2 1 .28 * 2 0 .56 * 2 1 .12

(MSB)

(LSB)

tom

ar desd

e MSB

até LSB

0.41 = 0 . 0 1 1 0 1 (MSB) (LSB)

N = 37.41 = 100101.01101

Verificação 100101.01101 = 1x25 + 0x24 + 0x23 + 1x22 + 0x21 + 1x20 + 0x2-1 + 1x2-2 + 1x2-3 + 0x2-4 + 1x2-5 = = 32 + 0 + 0 + 4 + 0 + 1 + 0 + 0.25 + 0.125 + 0 + 0.031 = 37.406

em cada divisão tomar nota do resto

parar de dividir quando quociente

for zero

em cada multiplicação a parte inteira é

retirada

parar de multiplicar quando der zero, ou

atingir a precisão pretendida

Page 75: ARQUITETURA DE COMPUTADORES I - di.ubi.ptparaujo/Cadeiras/ArquitecturaComputadores... · ARQUITETURA DE COMPUTADORES I 2018-2019 Engenharia Informática(11537) Aquisição de conhecimentos

Conversão de Bases (cont.)

Binário(2) → Decimal(10) : aplicar a expressão dos sistemas de numeração

Exemplo: 1101.110002 =

Decimal(10) → Hexadecimal(16) : divisões sucessivas por 16

Hexadecimal(16) → Decimal(10) : aplicar a expressão dos sistemas de numeração

Exemplo: 7CD16 =

• parar quando o quociente for zero • tomar restos por ordem inversa da sua obtenção (converter cada resto para hexa)

1 x 23 + 1 x 22 + 0 x 21 + 1 x 20 + 1 x 2-1 + 1 x 2-2 8 + 4 + 0 + 1 + 0.5 + 0.25 = 13 + 0.75 = 13.75

7 x 162 + C x 161 + D x 160 = 7 x 162 + 12 x 161 + 13 x 160 = 1792 + 192 + 13 = 1997

(MSB)

Exemplo: 1997 = B16 ?

1997 16 13 124 16 12 7 16 7 0

7

D

C (LSB)

1997 = 7CD16

MSB LSB

Page 76: ARQUITETURA DE COMPUTADORES I - di.ubi.ptparaujo/Cadeiras/ArquitecturaComputadores... · ARQUITETURA DE COMPUTADORES I 2018-2019 Engenharia Informática(11537) Aquisição de conhecimentos

Conversão de Bases

A5216 = 1010 0101 00102 = 1010010100102

Hexadecimal(16) ↔ Binário(2) • como cada algarismo hexa (0,1,...,F) é constituído por 4 bits (0000, 0001,..., 1111) basta converter

em grupos de 4 bit

11110011112 = 0011 1100 11112 = 3CF16

ex1: hexadecimal → binário : A5216 = B2 ? ex2: binário → hexadecimal : 11110011112 = B16 ?

Page 77: ARQUITETURA DE COMPUTADORES I - di.ubi.ptparaujo/Cadeiras/ArquitecturaComputadores... · ARQUITETURA DE COMPUTADORES I 2018-2019 Engenharia Informática(11537) Aquisição de conhecimentos

Conversão de Bases

Decimal(10) → Binário(2) : conversão por base intermédia • a conversão por divisões sucessivas por 2 pode originar muitas iterações • converter primeiro para uma base intermédia (ex. hexadecimal) e depois para binário

Ex: 37 = B2 ?? →

usando 1º) decimal → hexa 37 = 2516 hexadecimal como base intermédia 2º) hexa → binário 2516 = 0010 01012

37 2 1 18 2 0 9 2 1 4 2 0 2 2 0 1 2 1 0

1 7

(LSB)

(MSB)

37 16 16 5 2 0 2

37 = 1 0 0 1 0 12 = 0010 01012 (MSB) (LSB)

Page 78: ARQUITETURA DE COMPUTADORES I - di.ubi.ptparaujo/Cadeiras/ArquitecturaComputadores... · ARQUITETURA DE COMPUTADORES I 2018-2019 Engenharia Informática(11537) Aquisição de conhecimentos

Conversão de Bases

Ex: 10110101012 = 0010 1101 01012 = 2D516 = 2*162 + 13*161 + 5*160 = 512+208+5=725 2 D 5

Binário(2) → Decimal(10) : conversão por base intermédia a aplicação da expressão dos sistemas de numeração pode originar muitas iterações

Ex: 10110101012 = 1*29 + 0*28 + 1*27 + 1*26 + 0*25 + 1*24 + 0*23 + 1*22 + 0*21 + 1*20 = 725

Para reduzir o número de iterações vamos efectuar a conversão por uma base intermédia. Base intermédia hexadecimal(16) – começando da direita para a esquerda, separar em grupos de 4 bits, convertendo cada grupo para o algarismo hexadecimal correspondente e depois multiplicar pela potência de 16 de modo a obter o valor decimal

Page 79: ARQUITETURA DE COMPUTADORES I - di.ubi.ptparaujo/Cadeiras/ArquitecturaComputadores... · ARQUITETURA DE COMPUTADORES I 2018-2019 Engenharia Informática(11537) Aquisição de conhecimentos

Conversão de Bases

P1) 317 = binário ?

R1) usando a base hexadecimal como intermédia:

1º) converter o valor decimal para hexadecimal

Outros exemplos

(LSB) (MSB)

317 16 157 19 16 13 3 1 16 1 0

D 3 1

317 = 13D16

317 = 13D16 = 0001 0011 11012

P2) 100001110 2 = decimal ?

R2) usando a base hexadecimal como intermédia:

1º) separar em grupos de 4 digitos binários convertendo cada grupo para hexadecimal 100001110 2 = 0001 0000 1110 2 = 10E16

2º) converter o valor hexadecimal para decimal 10E16 = 1*162 + 0*161 + E*160 = 1*162 + 0*161 + 14*160 = 256 + 0 + 14 = 270

2º) converter o valor hexadecimal para binário, convertendo cada algarismo hexadecimal em grupos de 4 digitos binários

Page 80: ARQUITETURA DE COMPUTADORES I - di.ubi.ptparaujo/Cadeiras/ArquitecturaComputadores... · ARQUITETURA DE COMPUTADORES I 2018-2019 Engenharia Informática(11537) Aquisição de conhecimentos

Métrica Binária

Agrupamentos de n bits

Decimal (base 10) → prefixo K significa 1000 = 103 (potência inteira de 10)

Binário (base 2) → prefixo K significa 1024 = 210 (potência inteira de 2)

Page 81: ARQUITETURA DE COMPUTADORES I - di.ubi.ptparaujo/Cadeiras/ArquitecturaComputadores... · ARQUITETURA DE COMPUTADORES I 2018-2019 Engenharia Informática(11537) Aquisição de conhecimentos

Métrica Binária

Agrupamentos de n bytes

Page 82: ARQUITETURA DE COMPUTADORES I - di.ubi.ptparaujo/Cadeiras/ArquitecturaComputadores... · ARQUITETURA DE COMPUTADORES I 2018-2019 Engenharia Informática(11537) Aquisição de conhecimentos

Métrica Binária

A norma IEC 80000-13: Quantities and units – Part 13: Information science and technology , publicada em 2008 define os seguintes prefixos binários:

Consultar: Prefixes for binary multiples - http://physics.nist.gov/cuu/Units/binary.html

Exemplo: 1 KByte = 103 Byte = 1000 Byte (Kilo Byte) 1 KiByte = 210 Byte = 1024 Byte (Kibi Byte)

https://en.wikipedia.org/wiki/Binary_prefix#pebi

Page 83: ARQUITETURA DE COMPUTADORES I - di.ubi.ptparaujo/Cadeiras/ArquitecturaComputadores... · ARQUITETURA DE COMPUTADORES I 2018-2019 Engenharia Informática(11537) Aquisição de conhecimentos

Aula 6

Aritmética Binária

Page 84: ARQUITETURA DE COMPUTADORES I - di.ubi.ptparaujo/Cadeiras/ArquitecturaComputadores... · ARQUITETURA DE COMPUTADORES I 2018-2019 Engenharia Informática(11537) Aquisição de conhecimentos

Aritmética Binária As operações aritméticas em binário (soma, subtracção, mutiplicação, divisão) realizam-se de forma idêntica à decimal

SOMA

decimal

1(vai um)

7 + 6 ------- 1 3 uma volta à

base 10

sobrou para 10 3 bits a somar

binário

1 1(vai um)

0 1 1 1 + 0 1 1 0 ----------- 1 1 0 1

Tabuada da Soma 1

0 0 1 1 +0 + 1 + 0 + 1 ---- ---- ---- ---- 0 1 1 1 0

Carry = quantas voltas deu à base 2 Sum = o que sobrou para a base 2

“vai um“ transporte

ou Carry

a soma é feita coluna a coluna tendo em conta o Carry resultante da coluna anterior.

Page 85: ARQUITETURA DE COMPUTADORES I - di.ubi.ptparaujo/Cadeiras/ArquitecturaComputadores... · ARQUITETURA DE COMPUTADORES I 2018-2019 Engenharia Informática(11537) Aquisição de conhecimentos

Aritmética Binária

Soma: S=a+b

1(vai um)

a 0 0 1 1 + b +0 + 1 + 0 + 1 ---- → ---- ---- ---- ---- C S 0 1 1 1 0

Carry Sum

semi somador

½ +

a

b

S

C

Tabela de Verdade

Half - Adder

semi-somador porque não tem em consideração o Carry da soma anterior

Função com duas saídas: C e S

a

b

S = a . b + a . b = a b + a

b

C = a . b

LogiSim

Page 86: ARQUITETURA DE COMPUTADORES I - di.ubi.ptparaujo/Cadeiras/ArquitecturaComputadores... · ARQUITETURA DE COMPUTADORES I 2018-2019 Engenharia Informática(11537) Aquisição de conhecimentos

Somador completo

em cada coluna somam-se 3 bit: um por cada parcela a somar + Carry da soma anterior (Ci = Carry in) por sua vez há saída de um bit de Carry para a coluna seguinte (Co = Carry out) , o qual pode ser 1 ou 0

somador completo

a

b

S

Co (Carry out)

(Carry in) Ci

Full - Adder

1 1 0 0

0 1 1 0 (a) + 1 1 1 1 (b) ------------------------------ 1 0 1 0 1

Co Co

Co

Somador completo com dois semi-somadores

semi somador

½ +

a

b

S

C

semi somador

½ +

a

b

S

C

Co

Ci

a

b

S

Co

Ci =0

Page 87: ARQUITETURA DE COMPUTADORES I - di.ubi.ptparaujo/Cadeiras/ArquitecturaComputadores... · ARQUITETURA DE COMPUTADORES I 2018-2019 Engenharia Informática(11537) Aquisição de conhecimentos

Somador completo

somador completo

a

b

S

Co (Carry out)

(Carry in) Ci

Full - Adder

LogiSim