SlideShare uma empresa Scribd logo
1 de 21
Baixar para ler offline
CIRCUITOS
DIGITAIS
4
1
Mensagens e Sinais
1.1 Conceito
Os seres não seriam perceptíveis se não existisse entre eles uma interação. Isto quer dizer que, de alguma forma, é
necessário que ocorra um processo de comunicação para se perceber a existência dos seres.
Só existe uma única maneira de um ser interagir com outro ser. Só existe uma única maneira de um ser tomar
conhecimento da existência de outro ser:
"Alguma coisa tem que sair de um e chegar até o outro."
Essa coisa, denominada mensagem, pode ser enviada através de:
• Um sinal que caminha através de perturbações sucessivas do meio (impulsos ou ondas no meio);
• Uma parte (partícula) que sai de um ente e choca-se com outro ente;
• Choque direto de mais de um ente.
Assim, as mensagens se propagam por meio de sinais ou de partículas. Na primeira situação, um ser perturba o
meio imediatamente próximo de si (ex: ar, água, etc.), e esta perturbação (sinal) caminha até chegar ao outro ser. É
uma situação semelhante à mostrada na figura abaixo onde o estado da última bola é alterado pela ação da primeira
bola, sem que tenha ocorrido o contato desta com a última bola. O que foi comunicado veio através de um sinal.
Na comunicação por partícula, a mensagem chega através do choque da partícula emitida por um ente, com outro
ser.
ENTE ENTE
choque
5
1.2 Tipos de Sinais
Os sinais são caracterizados por pelo menos duas informações:
• A intensidade (grau de força com que o sinal ocorreu ou chegou);
• A fase (o instante em que o sinal ocorreu ou chegou);
Conforme sua intensidade, os sinais podem ser quantizados em diversos estados:
• Sinais de dois estados ou binários (existe e não existe, ligado ou desligado, aceso ou apagado, quente ou frio,
disponível ou em falta)
• Sinais de três estados ou ternários (a favor / contra / neutro)
• Sinais de n-estados
Conforme a fase os sinais podem ser classificados em:
• Síncronos – ocorrem no mesmo instante
• Assíncronos – ocorrem em instantes distintos
1.3 Exemplo Introdutório
a) Considere um circuito elétrico composto de uma fonte de energia comercial (a alimentação da empresa de
distribuição de energia, p.ex., a Light) e um interruptor (nossas entradas ) e uma lâmpada (nossa saída). A lâmpada
acenderá se - e somente se
• Houver energia disponível (se não estiver "faltando luz") e
• O interruptor estiver ligado.
Elabore uma tabela que represente esse circuito lógico.
Resposta:
Para este exemplo, os sinais que modelam o sistema são:
• Energia – pode assumir dois estados: faltando ou disponível
• Interruptor – pode assumir dois estados: desligado ou ligado
• Lâmpada – pode assumir dois estados: apagada ou acesa
Assim, uma tabela seria:
Energia Interruptor Lâmpada
Faltando Desligado Apagada
Faltando Ligado Apagada
Disponível Desligado Apagada
Disponível Ligado Acesa
b) Considere um sistema composto de duas caixas d'água (uma superior e uma cisterna).
• A cisterna é alimentada pela entrada de água da "rua", via empresa distribuidora (ex.: CEDAE).
• A caixa superior serve para distribuir a água, por gravidade, em todo o prédio: bicas, chuveiros, descargas
sanitárias, circuitos anti-incêndio, etc,
• A água da cisterna é impulsionada por uma bomba hidráulica através de uma tubulação que liga a cisterna à
caixa superior.
instantes
Intensidade
6
Considerando que a bomba queimará se for acionada sem haver água no circuito hidráulico, projete um circuito
lógico para acionar a bomba sempre que a caixa superior estiver vazia, desde que tenha água na cisterna.
Resposta:
Cisterna Caixa Superior Bomba
Vazia Vazia Desligada
Vazia Cheia Desligada
Cheia Vazia Acionada
Cheia Cheia Desligada
c) Considere um circuito elétrico composto de uma fonte de energia comercial (a alimentação da empresa de
distribuição de energia, p.ex., a Light), uma alimentação auxiliar (um gerador e um no-break, com bateria de
acumulação) e um interruptor (nossas entradas ) e um sistema de computadores (nossa saída). O computador
poderá operar se:
• Houver energia disponível (se não estiver "faltando luz") em um dos circuitos de alimentação e
• O interruptor estiver ligado.
Elabore a tabela verdade que representa esse circuito lógico.
Resposta:
Energia
Comercial
Alimentação
Auxiliar
Interruptor Computador
Faltando Faltando Desligado Não operando
Faltando Faltando Ligado Não operando
Faltando Disponível Desligado Não operando
Faltando Disponível Ligado Operando
Disponível Faltando Desligado Não operando
Disponível Faltando Ligado Operando
Disponível Disponível Desligado Não operando
Disponível Disponível Ligado Operando
1.4 Definindo Estados
Para definição do estado de um sinal, as transições são ignoradas, só a intensidade interessa para uma determinada
fase (ou intervalo de tempo).
• Estado-0: contraído, curto, comprimido, apagado, com luz, sem orifício (cartão)
• Estado-1: distendido, longo, alargado, aceso, sem luz, com orifício (cartão)
Os circuitos normalmente utilizados na construção de computadores reconhecem dois tipos de estados, (estado 0 e
estado 1). Pelo fato de serem dois estados, estes circuitos são também chamados de binários.
1.5 Sensibilidade
Quanto distendido, curto, comprimido?
Valor Binário do Sinal Definição Faixa de Tensão
0 Falso (Low) 0 a 0,2 V
1 Verdadeiro (High) 2,5 a 5 V
A implementação dos circuitos normalmente é feita através de circuitos elétricos e, assim sendo, os dois estados (0
e 1) são reconhecidos conforme haja ou não eletricidade em determinado ponto.
Cisterna
Caixa
Superior
7
Nos últimos anos, grande parte dos fabricantes têm seguido uma padronização, conhecida como padrão TTL
(Lógica Transistor-Transistor). De acordo com este padrão, o estado O é reconhecido para tensões entre - 0.5V e
0.8V, e o estado 1 para o nível de tensão entre +2 e +5.5V, para fases com duração até 10 ns.
Estado-1: Pulsos de amplitude 5V e duração de 10 ns
1.6 Exercícios
1.6.1 Defina com suas palavras o que é um sinal analógico e um sinal digital, destacando os pontos que os
diferenciam.
1.6.2 Dê exemplos, do mundo real, de sinais de mais de um estado : binários, ternários e etc.
1.6.3 Determine a partir do gráfico abaixo ao lado quais sinais são síncronos e quais representam o mesmo estado.
10 ns
5 V
8
2
Álgebra de Boole e Lógica de
Circuitos
2.1 Lógica de contatos - Dispositivos bi-estáveis
Uma lâmpada é um dispositivo que exibe o valor de sinais binários onde, "acesa" pode significar estado um e
"apagada" estado zero. Dispositivos deste tipo são chamados bi-estáveis, pois oscilam entre dois estados que não se
alteram sozinhos: sempre é preciso uma ação externa para modificá-los. Depois que são levados a qualquer um de
seus dois estados, nele permanecem e é preciso uma ação externa para levá-lo ao estado oposto. O estado não se
altera sozinho com o tempo.
Portanto, em princípio é possível se construir máquinas lógicas, que utilize a luz como sinal binário de
processamento.
X é uma variável binária (só pode assumir dois valores distintos: ou 0 ou 1)
Variável X Função L
0
1
0
1
2.2 Contatos em Paralelo
Representam a operação OR (OU) que é simbolizada pelo caracter: +
X Y L(X, Y)
0
0
1
1
0
1
0
1
0
1
1
1
L(X, Y) = X + Y
X L
X
Y
L
9
2.3 Contatos em Série
Representam a operação AND (E) que é simbolizada pelo caracter: .
X Y L(X, Y)
0
0
1
1
0
1
0
1
1
0
0
0
L(X, Y) = X .Y
2.4 Inversão , Negação ou Complementação
X L(X)
0
1
1
0
_
L = X
2.5 Circuitos Singulares
Sempre aberto: 0
Sempre fechado: 1
2.6 As cinco portas lógicas
Abstraindo-se a implementação física da lógica de contatos, é fácil se definir as cinco portas lógicas que são os
principais blocos construtores do nível de lógica digital.
A B X A B X
0 0 0 0 0 0
0 1 0 0 1 1
1 0 0 1 0 1
1 1 1 1 1 1
A B X A B X
0 0 1 0 0 1
0 1 1 0 1 0
1 0 1 1 0 0
1 1 0 1 1 0
X Y L
X
L
A
B
X
AND
A
B
X
OR
A
B
X
NAND
A
B
X
NOR
10
A X
0
1
1
0
2.7 Implementação física das Portas Lógicas
2.7.1 Síntese Mecânica
Utilizando sinais mecânicos pode-se construir Gates mecânicos, conforme mostrado a seguir
Gate AND Gate OR
AND
2.7.2 Síntese por fios
Gate OR Gate AND
α pequeno
2.7.3 Síntese com a luz
Também é possível se construir gates que utilizem sinais luminosos. O mais simples deles é o gate OR. Este gate
deverá responder com "ACESO" se qualquer luz chegar à qualquer uma de suas entradas. A forma mais simples de
se realizar o gate OR com luz, utiliza espelhos conforme mostrado na figura abaixo:
α
A X
INVERSOR
11
O gate NOT utilizando sinais de luz é um pouco mais trabalhoso, pois envolve o fenômeno da interferência. Este
fenômeno ocorre quando dois feixes de luz que percorrem caminhos diferentes se superpõem (interferência de
Fraunhofer). Nesse ponto as duas ondas podem se somar (interferência construtiva) ou subtrair (interferência
destrutiva) produzindo franjas claras e escuras.
Assim se for utilizado numa das entradas do gate uma lâmpada constantemente acesa como referência e na outra
entrada um sinal luminoso qualquer (aceso ou apagado), posicionando-se a saída na região onde ocorre a
interferência destrutiva, pode-se obter o gate NOT. É importante observar que o tamanho do orifício de entrada e
saída devem ser da mesma ordem de grandeza do comprimento de onda de luz incidente.
Como dois gates: OR e NOT pode-se montar o gate AND . É importante notar que alguns dos gates devem ser
trabalhados para compensar as perdas de intensidade da luz devido ao processo de reflexão e refração.
2.7.4 Síntese Eletrônica
2.7.4.1 Inversor NOT
O transistor pode operar como uma chave binária muito rápida:
Um transistor bipolar em um circuito simples, conforme
mostrado na figura ao lado, possui três conexões com o mundo
exterior:
• O coletor,
• A base
• O emissor.
VCC é uma tensão regulada externamente, tipicamente +5 volts.
O resistor é necessário para limitar a corrente que passa pelo transistor.
• Quando a tensão de entrada VIN, está abaixo de certo valor
crítico, o transistor abre e age como uma resistência infinita,
fazendo a saída do circuito, VOUT, adquirir um valor muito
próximo a VCC.
• Quando VIN excede o valor crítico, o transistor fecha e age como um fio, fazendo VOUT ser ligado à terra (por
convenção, 0 volt).
• Quando VIN é baixo, VOUT é alto, e vice-versa. Este circuito é, portanto, um inversor convertendo um 0
lógico em um 1 lógico, e um 1 lógico em um 0 lógico.
Base
Coletor
Emissor
VIN
VCC
VOUT
12
2.7.4.2 Porta NAND
Dois transistores ligados em série:
• Se tanto V1 quanto V2 forem altos, ambos os transistores
conduzirão, e VOUT será baixo.
• Se uma das entradas estiver em nível baixo, o transistor
correspondente abrirá, e a saída será alta.
• VOUT será baixa se e somente se, tanto V1 quanto V2
estiverem altas.
2.7.4.3 Porta NOR
Dois transistores ligados em paralelo:
• Se qualquer entrada estiver alta, o
transistor correspondente fechará e a
saída será aterrada.
• Se ambas as entradas estiverem baixas,
a saída permanecerá alta.
2.8 A dualidade das portas
Conforme pode ser visto, um circuito AND é exatamente igual a um circuito OR quando se troca o zero pelo um e
o um pelo zero. Assim, quando fazemos um AND estamos simultaneamente fazendo um OR. O mesmo
acontecendo com o NAND e o NOR. Uma forma se reproduz na outra.
O mesmo pode ser observado para as portas NAND e NOR.
Entretanto a porta NOT não sofre alteração, de forma que os duais para circuitos lógicos são:
PORTAS DUAL
OR AND
AND OR
NOR NAND
NAND NOR
NOT NOT
2.9 Definição Axiomática da Álgebra de Boole
Devido à simplicidade de projeto e construção, acarretando na redução de seu custo e maior confiabilidade, os
circuitos eletrônicos (que formam os computadores digitais) são capazes de distinguir apenas dois níveis de tensão -
computadores digitais binários. Estes sinais elétricos são tensões que assumem dois diferentes valores: um valor
positivo (cerca de +3 V - três volts positivos) para representar o valor binário 1 e um valor aproximado a 0 V (zero
V2
V1
VCC
VOUT
V2
V1
VCC
VOUT
13
volt) para representar o valor binário 0. Na realidade, estes valores não são absolutos, e sim faixas de valores, com
uma margem de tolerância (entre +2.5 e +3.5 V, representando o valor binário 1, e entre 0 e + 0,5 V representando
o valor binário 0).
A lógica que permite aos computadores operar baseados nestes dois valores é chamada Álgebra de Boole, em
homenagem ao matemático inglês George Boole (1815-1864). Esta lógica, incluindo o estudo de alguns Circuitos
Lógicos elementares, é baseada em um conjunto de axiomas conforme mostrado a seguir.
2.10 Axiomas de Boole
Seja um conjunto B que contém pelo menos 2 elementos (0 e 1) e duas operações internas (. e +) sobre E, isto é: B
= { E, . , +, 0, 1}. Para este conjunto são definidos 9 axiomas (denominados axiomas de Boole) :
Associatividade :
A1. (X +Y) + Z = X + (Y + Z)
A2. (X . Y) . Z = X . (Y . Z)
Comutatividade :
A3. X + Y = Y + X
A4. X . Y = Y . X
Dos Elementos Neutros
A5. X + 0 = 0 + X = X
A6. X . 1 = 1 . X = X
Distributividade
A7. X . (Y + Z) = (X . Y ) + (X . Z)
A8. X + (Y . Z) = (X + Y) . (X + Z)
Existência de Complemento
_ _ _
A9. ∀ X ∃ X ⎜ X . X = 0 e X + X = 1
14
3
Funções Lógicas de Variáveis
Binárias
3.1 Conceito
As funções lógicas são definidas através de:
• Tabela da Verdade : tabela de valores da função para todas as combinações das variáveis
• Funções +, . e ¯ : qualquer função booleana pode ser escrita em função dos operadores fundamentais
• Blocos Lógicos
3.2 Funções de uma variável
X F1=Nula / Aberto F2=Identidade F3=Inversor F4= Fechado
0 0 0 1 1
1 0 1 0 1
3.3 Funções de duas variáveis
Variáveis Uma Saída ativa Duas Saídas ativas Três Saídas ativas 4
X1 X2 F1 F2 F3 F4 F5 F6 F7 F8 F9 F10 F11 F12 F13 F14 F15 F16
Nula And Nor ⊕ Comp Nand Implic OR Unit
0 0 0 0 0 0 1 1 0 0 0 1 1 1 1 1 0 1
0 1 0 0 0 1 0 0 1 0 1 1 0 1 1 0 1 1
1 0 0 0 1 0 0 1 0 1 1 0 0 1 0 1 1 1
1 1 0 1 0 0 0 0 1 1 0 0 1 0 1 1 1 1
Existem ao todo:
1
2
2 = 4 funções
Existem ao todo:
2
2
2 = 16 funções
Fi
X Y = Fi(X)
Fi
X1
Y = Fi(X)
X2
15
3.4 Funções de n variáveis
1 variável Î 2 linhas e 4 colunas
2 variáveis Î 4 linhas e 16 colunas
3 variáveis Î 8 linhas e 64 colunas
4 variáveis Î 16 linhas e 256 colunas
3.5 Teorema de Morgan
Pelo teorema de Morgan bastam dois "gates" ( AND e NOT ou OR e NOT) para se obter o terceiro "gate". Isto é
fácil de se ver, pois o teorema mostra que:
a) A inversão de X + Y reproduz X . Y com cada sinal invertido, logo tendo os "gates" OR (+) e NOT (barra) e
invertendo-se os sinais X e Y, pode obter-se o "gate" AND (.).
b) A inversão de X . Y reproduz X + Y com cada sinal invertido, logo tendo os "gates" AND (.) e NOT (barra) e
invertendo-se os sinais X e Y, pode obter-se o "gate" OR (+).
O teorema de Morgan formaliza o fenômeno da dualidade das portas lógicas (ver item 2.8)
3.6 Regras para representação das condições de Saída
Graças ao Teorema de Morgan, pode-se concluir que existem duas formas canônicas para representação das
condições de saída:
a) Formas que produzem saída 1 (e portanto as demais condições produzem saída 0) ou alternativamente,
b) Formas que produzem saída 0 (e portanto as demais condições produzem saída 1).
Assim, uma forma representa as condições que produzem saída 1 (SOMA DOS MINITERMOS) , a outra
representa as condições que produzirão saída 0 (PRODUTO DOS MAXITERMOS). Essas formas são alternativas,
isto é, a expressão poderá ser encontrada aplicando-se alternativamente UMA ou OUTRA das formas.
MINITERMO - são termos somente com AND (termos PRODUTO)
MAXITERMO - são termos somente com OR (termos SOMA).
Existem ao todo:
n
2
2 funções
As funções são tabuladas com: 2
2 linhas e
n
2
2 colunas
Y
X
Y
X .
=
+
Y
X
Y
X +
=
.
Y
X + Y
X.
OR
X
Y
X
Y
X . Y
AND
X
Y
Y
X. Y
X +
X
Y
X
Y
AND
X + Y
OR
X
Y
16
3.7 Operador NOR
3.7.1 Definição
_
NOR de uma entrada: ↓ X = X (negação pura)
_ _ _____
NOR de duas entradas: X ↓ Y = X . Y = X + Y
3.7.2 Propriedades
• O operador NOR é comutativo: X ↓ Y = Y ↓ X
• O operador NOR não é associativo: X ↓ Y ↓ Z ≠ (X ↓ Y) ↓ Z ≠ X ↓ (Y ↓ Z)
3.7.3 Síntese de Operadores por meio do NOR
Operador OR Operador AND
3.8 Operador NAND
3.8.1 Definição
_
NAND de uma entrada: ↑ X = X (negação pura)
_ _ _____
NOR de duas entradas: X ↑ Y = X + Y = X . Y
3.8.2 Propriedades
• O operador NAND é comutativo: X ↑ Y = Y ↑ X
• O operador NAND não é associativo: X ↑ Y ↑ Z ≠ (X ↑ Y) ↑ Z ≠ X ↑ (Y ↑ Z)
X
Y
Z
NOR
X
Y
Z
NAND
X1 X2 Nor
0 0 1
0 1 0
1 0 0
1 1 0
X1 X2 Nand
0 0 1
0 1 1
1 0 1
1 1 0
X + Y X ↓ Y = Y
X
Y
X ∧
=
∨
OR
X
Y
X + Y = Y
X↓
X ↓ Y
X
Y
NOR
X .Y = Y
X↓
X
Y
X
Y
NOR
X ↑ Y = Y
X
Y
X +
=
.
X .Y
AND
X
Y
17
3.8.3 Síntese de Operadores por meio do NAND
Operador AND Operador OR
3.9 Relação entre NAND e NOR
3.10 Operador XOR (ou exclusivo)
3.10.1 Definição
A função booleana “ou-exclusivo” (XOR) só gera uma saída ativada quando apenas uma das entradas está ativada,
isto é:
X Y Z=X R
0 0 0
0 1 1
1 0 1
1 1 0
Z = X Y
3.10.2 Propriedades
A função XOR apresenta uma propriedade muito interessante quando se combina a saída Z com alguma
das entradas, conforme pode ser visto a seguir:
X Z X R
0 0 0
0 1 1
1 1 0
1 0 1
Pela tabela anterior pode-se verificar que quando o XOR for aplicado em uma das variáveis X ou Y junto
com o valor do XOR das duas variáveis (X Y), o resultado reproduz uma das variáveis (no caso a
variável Y), isto é:
Se Z = X Y Î X Z = Y (resulta no valor original), e Y Z = X
Esta propriedade é extremamente útil em algoritmos de criptografia e também na computação gráfica
Y
X
Y
X
Y
X
Y
X ↓
=
+
=
=
↑ .
X . Y = Y
X↑
X ↑ Y
X
Y
NAND
X
Y
X + Y = Y
X↑
X
Y
NAND
18
Assim, a aplicação do operador XOR à saída de um outro operador XOR com um dos sinais, restaura o outro sinal
Z Y X
0 0 0
1 1 0
1 0 1
0 1 1
Z X Y
0 0 0
1 0 1
1 1 0
0 1 1
Devido a essa propriedade, o operador XOR é muito usado na criptografia
3.11 Exercício
Algoritmos de criptografia são muito utilizados em páginas de comércio eletrônico da Internet e na construção de
redes VPN (Virtual Private Network), para garantir o sigilo na comunicação entre um cliente e o servidor.
Normalmente esses algoritmos usam uma chave K conhecida do cliente (ou dinamicamente transferida de um
servidor em tempo de execução) que é utilizada para criptografar o conteúdo de uma mensagem (que pode ser o
número do cartão de crédito do cliente, o valor da compra, o código do lojista, etc.) segundo a expressão:
Z = K Θ Conteúdo
O valor Z, criptografado, é enviado do cliente ao servidor onde é descriptografado com a mesma chave K segundo
a expressão:
Z Θ K = Conteúdo
Qual a sugestão que você daria para o operador Θ ?
Resposta
O operador é semelhante à função XOR, já que:
Se Z = X Y Î X Z = Y (resulta no valor original), e Y Z = X
19 20
4
Circuitos Lógicos
4.1 Descrição dos Circuitos Básicos
De uma maneira geral, os circuitos digitais utilizados num computador podem ser de dois tipos:
(i) Circuitos Combinacionais
• FULL-ADDER
• DECODER/DEMULTIPLEXER
• COMPARER
• CONVERTER
• DATA SELECTOR/MULTIPLEXER
(ii) Circuitos Seqüenciais
• MEMORY CELL
• FLIP-FLOP
• CLOCK
• REGISTER
A base desses circuitos são os "gates": AND (.), OR (+ ) e NOT (¯)
4.2 Circuitos Combinacionais
São circuitos que realizam alguma função booleana de n variáveis
As funções sempre poderão ser escritas com os operadores OR, AND e NOT
Por razões práticas um circuito poderá ser melhor realizado (menos Gates, menos custos, mais rápido, etc.) com
uma tecnologia particular (NAND, NOR, etc.)
4.3 Comparador de Bit
Circuito tal que: Z = 1 se x = y
Z = 0 se x ≠ y
Tabela da Verdade:
X Y Z
0
0
1
1
0
1
0
1
1
0
0
1
21
_ _
Função Booleana: Z = (X . Y) + (X . Y)
Diagrama de Blocos:
4.4 A Soma dos Minitermos
É produzida construindo:
• Um termo (uma sub-expressão) para cada linha da tabela verdade (que representa uma combinação de valores
de entrada) em que a saída é 1,
• Cada um desses termos é formado pelo PRODUTO (FUNÇÃO AND) das variáveis de entrada, sendo que:
- Quando a variável for 1, mantenha;
- Quando a variável for 0, complemente-a (função NOT).
• A função booleana será obtida unindo-se os termos PRODUTO (ou minitermos) por uma porta OR (ou seja,
"forçando-se" a saída 1 caso qualquer minitermo resulte no valor 1).
Dessa forma, ligando os termos-produto (também chamados minitermos) pela porta OR, caso QUALQUER UM
dos minitermos seja 1 (portanto, caso qualquer uma das condições de valores de entrada que produz saída 1se
verifique), a saída pela porta OR será também 1. Ou seja, basta que se verifique qualquer uma das alternativas de
valores de entrada expressos em um dos minitermos, e a saída será também 1, forçada pelo OR. Caso nenhuma
dessas alternativas se verifique, produz-se a saída 0.
4.5 Decodificador
Circuito combinacional que a cada valor do elemento de informação faz corresponder o valor 1 a uma e só uma
saída.
Tabela da Verdade:
X Y S1 S2 S3 S4
0 0 1 0 0 0
0 1 0 1 0 0
1 0 0 0 1 0
1 1 0 0 0 1
Funções Booleanas:
Y
X
S .
2 =
Y
X
S .
4 =
Diagrama de Blocos:
Y
X
S .
1=
Y
X
S .
3 =
AND
OR
AND
X
Y
Z
AND
AND
X
Y
S1
AND
AND
S2
S3
S4
22
4.6 Data Selector / Multiplexador
Circuito combinacional onde a saída S depende de um controle K denominado chave. Assim, dependendo da chave
uma das entradas será enviada à saída. A chave K seleciona qual das entradas se deseja na saída.
4.6.1 Caso de 2 entradas
Tabela da Verdade:
K S
0 X
1 Y
Função Booleana:
Diagrama de Blocos:
4.6.2 Caso de 4 entradas
Tabela da Verdade:
K1 K2 S
0 0 X1
0 1 X2
1 0 X3
1 1 X4
Função Booleana:
Diagrama de Blocos:
( ) ( )
K
Y
K
X
S .
. +
=
( ) ( ) ( ) ( )
2
.
1
.
4
2
.
1
.
3
2
.
1
.
2
2
.
1
.
1 K
K
X
K
K
X
K
K
X
K
K
X
S +
+
+
=
AND
AND
X
Y
K
S
OR
AND
AND
X1 X3
X2
S
OR
AND
AND
AND
K1
K2 AND
AND
X4
AND
Decodificador
23
4.7 Produto dos Maxitermos
É produzida construindo:
• Um termo (uma sub-expressão) para cada linha da tabela verdade (que representa uma combinação de valores
de entrada) em que a saída é 0,
• Cada um desses termos é formado pela SOMA (FUNÇÃO OR) das variáveis de entrada, sendo que:
- Quando a variável for 0, mantenha;
- Quando a variável for 1, complemente-a (função NOT).
• A função booleana será obtida unindo-se os termos SOMA (ou maxitermos) por uma porta AND (ou seja,
"forçando-se" a saída 0 caso qualquer minitermo resulte no valor 0).
Dessa forma, ligando os termos-soma (também chamados maxitermos) pela porta AND, caso QUALQUER UM
dos minitermos seja 0 (portanto, caso qualquer uma das condições de valores de entrada que produz saída 0 se
verifique), a saída pela porta AND será também 0. Ou seja, basta que se verifique qualquer uma das alternativas de
valores de entrada 0 expressos em um dos maxitermos, e a saída será também 0, forçada pelo AND. Caso nenhuma
dessas alternativas se verifique, produz-se a saída 1.
4.8 Demultiplexador
Circuito combinacional que conforme o valor de K conecta a entrada E à uma das saídas S
Tabela da Verdade:
K1 K2 S1 S2 S3 S4
0 0 E 0 0 0
0 1 0 E 0 0
1 0 0 0 E 0
1 1 0 0 0 E
Função Booleana:
Diagrama de Blocos:
( )
2
.
1
.
1 K
K
E
S = ( )
2
.
1
.
2 K
K
E
S = ( )
2
.
1
.
3 K
K
E
S = ( )
2
.
1
.
4 K
K
E
S =
AND
AND
E
S3
S2
S1
AND
AND
AND
K1
K2 AND
AND
S4
AND
Decodificador
24
C
S
B
A
4.9 Circuito Somador (ADDER)
4.9.1 O Half Adder
Considere a adição de 2 algarismos binários: a e b, gerando um algarismo s de saída e um algarismo c do vai 1
(carrier)
a b S C
0 0 0 0
0 1 1 0
1 0 1 0
1 1 0 1
Este circuito pode ser sintetizado com as seguintes funções:
S = a ⊕ b
C = a . b
Assim, o half adder é um circuito combinacional composto de dois
elementos: um XOR (exclusive-or) e um gate AND.
Circuito half-adder
4.9.2 O Adder
A adição de dois algarismos binários ai e bi, considerando um carrier c i anterior, é feita através de um circuito
ADDER.
Entrada Saída
c i ai bi si ci+1
0 0 0 0 0
0 0 1 1 0
0 1 0 1 0
0 1 1 0 1
1 0 0 1 0
1 0 1 0 1
1 1 0 0 1
1 1 1 1 1
Neste caso:
( )
[ ] ( )
[ ]
b
a
c
b
a
c
s i
i
i ⊕
+
⊕
= .
. logo si = ai ⊕ bi ⊕ c i+1
i
i
i
i
i
i
i
i
i c
a
b
c
b
a
b
a
c .
.
.
.
.
1 +
+
=
+
[ ] ( )
[ ]
i
i
i
i
i
i c
b
a
b
a
c .
.
1 ⊕
+
=
+
Circuito Somador (2 meio-somadores)
Half
Adder
a
b
S ... saída
C ... carrier (vai 1)
Adder
ai
bi
si ... saída
ci+1 ... carrier (vai
c i
Si
Ci
Bi
Ai
Ci+1
25
4.9.3 O Full Adder
Permite a adição de 2 números binários de tamanho “n”, pela utilização de circuitos ADDER
4.10 Procedimento para Construção de Circuitos Lógicos
O mesmo comportamento (a mesma tabela da verdade) pode ser igualmente representada por qualquer das
formas canônicas.
Se ambas as formas canônicas produzem expressões equivalentes, como escolher qual a representação a utilizar?
Escolha a que resultar em menor número de termos, produzindo uma expressão mais simples.
Por esse método, pode-se encontrar a expressão que represente qualquer tabela verdade.
Após se encontrar uma expressão que represente o comportamento esperado, é possível que não seja uma expressão
simples que possa ser construída com poucas portas lógicas. Antes de projetar o circuito, é útil SIMPLIFICAR a
expressão, de forma a possibilitar construir um circuito mais simples e portanto mais barato.
Portanto, o fluxo de procedimento será: DESCRIÇÃO VERBAL ---> TABELA VERDADE ---> FORMA
CANÔNICA ---> FUNÇÃO SIMPLIFICADA ---> CIRCUITO
c0=0
ADDER
a0 b0
s0
c1
ADDER
a1 b1
s1
c2
ADDER
a2 b2
s2
c3
ADDER
a3 b3
s3
c4
26
5
Circuitos Seqüenciais
5.1 Elemento Lógico Monoestável
Circuitos seqüenciais são circuitos lógicos que não correspondem diretamente a funções booleanas porque a saída
de uma porta pode estar ligada, através de outras portas, a uma entrada dessa porta, como ilustra a Figura abaixo
O circuito acima consiste de apenas uma porta “Ou” realimentada.
Se A e Q estão no nível lógico “0” Î B está também no nível lógico “0”
Se A muda para “1” Î Q irá para “1” Î B muda para “1”
Se A retorna para “0” com B ainda em “1” Î Q não muda e permanece em “1” Î Elemento guarda a saída lógica
“1” para sempre Î A porta “OU” lembrará o último “1” recebido
Assim, o circuito acima é uma unidade lógica básica com memória monoestável (só tem um estado lógico estável
que é o “1”)
O comportamento de um circuito seqüencial tem de ser especificado em função do tempo para todos os possíveis
valores das entradas e dos estados internos das memórias.
Assim, nos circuitos seqüenciais existem dispositivos que memorizam resultados, são as “unidades de memória” de
modo a que os valores das saídas num dado instante dependem também do estado desses dispositivos.
5.2 Elemento Lógico Bi-estável
No circuito da Figura acima suponhamos que A e B estão com o valor 1. Então a saída da porta “OR” é 1, e assim,
as entradas na porta “AND” são 1 e a sua saída é C = 1. Se A tiver o valor 0, o valor de C não se altera. No entanto,
Q
OR
B
A
AND
OR
A
B
C
27
se B for zero o valor de C também passa a ser 0, independentemente do valor de A. Î o circuito memorizou o sinal
colocado em B (neste caso A = 1 funciona como um sinal “memorize B” para o circuito).
5.2.1 Circuito Astável ou Gerador de Onda de Relógio (CLK)
Um circuito astável tem dois estados, sendo os 2 quase-estável. Sem a ajuda de um sinal de disparo externo, a
configuração astável fará sucessivas transições de um estado quase-estável para o outro. Assim o circuito astável é
um oscilador e é usado como um gerador de ondas quebradas ou uma forma de onda de relógio.
Gráfico de um sinal de relógio
Gerador de relógio (pulser)
5.3 A Memória
A capacidade ``recordar'' dos circuitos seqüenciais permite que sejam usados na construção de unidades de
memória e de registradores.
Uma memória de um bit é um circuito capaz de recordar ao longo do tempo o valor da sua entrada e produzir esse
valor.
Um destes circuitos muito simples é apresentado na Figura a seguir. O circuito é controlado pela linha de entrada L
(Store), que permite a atualização do valor ``guardado'' pelo circuito. Normalmente, o valor dessa linha é 0 e o
valor da saída permanece, ao longo do tempo, sempre o mesmo.
Se L=0 e O=1 então, as entradas na porta b são ambas 1 e portanto a saída da porta d é 1, isto é, se o valor de O é 1
permanece 1.
Se o valor de L=0 e O=0, então uma das entradas da porta b é 0, o que significa que a sua saída é também 0.
Assim as duas entradas da porta d são 0, produzindo um valor 0 para O.
Se o valor de L passa a 1, então, por causa do inversor a a saída da porta b é 0.
Se a primeira entrada da porta c é 1, então o valor da saída desta porta é o valor de I (entrada “Data”) e que será
também o valor de O.
Assim, se L=1 o valor de saída do circuito é valor da entrada I.
Se L passar para 0, o valor de saída do circuito permanecerá esse valor.
AND
OR
AND
AND
AND
READ
DATA
STORE
“1 “
RESET
L
O
Porta b
Porta d
Inversor a
Porta c
CP1
CP2
Q1
Q2
V1
28
Na prática, os elementos de memória, são mais complexos e, em particular, tem associados um circuito de relógio
que permite controlar temporalmente (sincronizar) as várias componentes dos circuitos sequenciais. Os circuitos de
relógio são elementos que apenas emitem um sinal com uma frequência bem determinada.
As primeiras tecnologias utilizadas em memórias foram as memórias de núcleos magnéticos, hoje apenas uma
curiosidade. As memórias modernas, conforme visto, são compostas por circuitos semicondutores, com novas
tecnologias sendo criadas a cada ano permitindo que grandes quantidades de células de memória sejam
encapsuladas em pequenas pastilhas.
5.4 Flip-Flop
É um elemento lógico biestável (possui 2 estados lógicos estáveis).
Tem uma ou mais entradas e duas saídas (geralmente complementares: Q e Q ).
É um circuito que permanecerá em seu último estado a menos que um sinal de entrada cause uma mudança.
5.5 Flip-Flop RS
É o mais simples
É a célula básica de outros Flip-Flops
Tem duas entradas: S = Set e R = Reset
Tem duas saídas: Q e Q
(a) Se S= 0 e R = 1 Î Q = )
.
( Q
S = )
.
0
( Q = )
0
( = 1 Î Q=1 independente do estado anterior Î Q =0
A partir do instante em que Q = 0, a saída Q permanecerá em “1” (independente de S) Î S=1 e R=1 Î Q = 1 (o
estado anterior é conservado)
(b) Se S=1 e R = 0 Î Q = )
.
( Q
R = )
.
0
( Q = )
0
( = 1 Î Q = )
.
( Q
S = )
1
.
1
( = )
1
( = 0 (independente do nível lógico
de R)
A partir do instante em que Q = 0, a saída Q permanecerá em “1” (independente de R) Î S=1 e R=1 Î Q = 0 (o
estado anterior é conservado) e Q = 1
(c) Se R=0 e S=0 Î Q=1 e Q =0
(d) Por (a) S=1 e R=1 Î Q = 1 (o estado anterior é conservado)
Por (b) S=1 e R=1 Î Q = 0 (o estado anterior é conservado)
Logo, se S=1 e R=1 Î Q=0 ou Q=1 (dependendo da velocidade de chaveamento):
Se a porta de R é mais rápida Î ela vê em suas entradas R=Q=1 Î força a saída Q =0 Î na entrada da porta de S
tem-se S=1 e Q =0 Î força a saída Q=1 Î Q = )
.
( Q
R = )
1
.
1
( = )
1
( = 0 Î Q não muda
É impossível se saber à priori qual porta é a mais rápida ou mais lenta Î não se pode afirmar quais serão os níveis
lógicos nas saídas Î situação indeterminada
S R Q Q
Reset 0 1 1 0 R recebe “1” Î Q vai para 1 independente de S
1 1 1 0 Conserva estado anterior de Q e Q (qualquer pulso em S não tem
efeito na saída)
Set 1 0 0 1 S recebe “1” Î Q vai para 0 independente de R
1 1 0 1 Conserva estado anterior de Q e Q (qualquer pulso em R não tem
efeito na saída)
Ambos 0 0 1 1 R e S após assumirem “0” retornam a “1”
1 1 ? ? Indeterminado
Em uma montagem com portas Nor, o FF-RS manteria o estado anterior quando ambos S e R forem 0.
S
R
NAND
NAND
Q
__
Q
29
5.6 Flip-Flop RS com Relógio
CLK = entrada do relógio
Portas A e B: formam um FF-RS
Portas C e D: permitem a passagem dos sinais S e R se CLK = 1
Os instantes de subidas e descidas do relógio são muito bem definidos no tempo Î O relógio serve como
referência para os demais sinais
Condições:
• As informações já devem estar presentes nas entradas S e R quando chegar o pulso do relógio
• A duração do pulso do relógio deve ser suficiente para que a informação passe para as saídas Q e Q , pois a
transferência de informação não é instantânea (devido aos diversos tempos de atraso e de propagação).
• As entradas S e R não variam enquanto o pulso do relógio estiver presente.
Se CLK = 0 Î S1 = R1 = 1 (independente de S e R) Î S e R estão inibidas pois não conseguem acionar o FF-RS
Se CLK = 1 Î S1 = )
.
( CLK
S = )
1
.
(S = S e R1 = )
.
( CLK
R = )
1
.
(R = R Î funciona como simples FF-RS Î
FF-RS tem condições de armazenar as informações de S ou de R
Vantagem: as saídas Q e Q estarão sincronizadas com o restante do circuito que use o mesmo relógio
Entradas Durante o pulso Após o pulso
S R Q Q Q Q
0 1 0 1 0 1
1 0 1 0 1 0
0 0 Conserva Estado Conserva Estado
1 1 1 1 Indeterminado
5.7 Flip-Flop RS com Preset, Clear e Relógio
S1
R1
A
B
Q
__
Q
C
D
S
R
CLK
S1
R1
A
B
Q
__
Q
C
D
S
R
CLK
PR
CLR
30
PR (Preset) e CLR (Clear) atuam independentes do relógio CLK Î podem ser acionados de modo assíncrono (sem
estar em sincronismo com o relógio)
O estado normal das entradas PR e CLR é “1”
Quando CLK = 1:
Se PR = 0 e CLR = 1 Î Q = 1 e Q = 0
Se PR = 1 e CLR = 0 Î Q = 0 e Q = 1
Quando CLK = 1 Î tanto S quanto PR atuam como “Set” enquanto as entradas R e CLR atuam como “Reset”
Quando CLK = 0 Î as entradas PR e CLR atuam como S e R
Através das entradas PR e CLR é possível a modificação do estado do FF mesmo que CLK esteja no nível “0”
Mas o Flip-flop continua apresentando o problema da indeterminação
5.8 Flip-Flop D sensível ao nível do pulso de Relógio
As entradas S e R são sempre uma inversa da outra Î R = S Î Não existe mais a situação de porta mais rápida
que a outra Î Resolve a condição de indeterminação do flip-flop RS.
S R Q Q
0
1
1
0
1
0
0
1
Problema: só tem uma única entrada S (pois R é automaticamente determinado pela inversão de S)
5.9 Flip-Flop JK
Mestre
S1
R1
A
B
Q
__
Q
C
D
S
R
CLK
PR
CLR
Escravo
S2
R2
A
B
Q
__
Q
C
D
Q1
Q2
S1
R1
E
F
G
H
J
K
CLK
31
Consiste de dois flip-flop RS com relógio, um denominado mestre (master) e o outro escravo (slave)
Permite duas entradas (J e K)
Resolve a condição de indeterminação do flip-flop RS
Quando CLK = 1:
Se J = 0 , K = 0 Î S1 = R1 = 1 e CLK = 0 Î S2 = R2 = 1 Î o Flip-flop escravo não muda Î
A informação para o escravo é passada quando o pulso do relógio retorna ao nível o (CLK = 0 Î CLK = 1) Î
Q = Qanterior e Q = Q anterior
Entradas Saídas
J K Q Q
0 0 Qanterior Q anterior
0 1 1 0
1 0 Q anterior
Qanterior
1 1 1 1
Latches e Flip-Flops : CI´s: 74LS74, 74LS75 e 74LS76
5.10 Contadores
São circuitos digitais que variam os seus estados, sob o comando de um clock, de acordo com a seqüência pré-
determinada. São utilizados principalmente para contagens, geradores de palavras, divisores de freqüência, medidas
de freqüência e tempo, geradores de forma de onda, conversão de analógico para digital, sequenciamento de
operações de máquinas etc.
5.10.1 Contadores Assíncronos
Consistem de vários Flip-Flops conectados em série que avançam de um estado para o outro em resposta a um
evento, que pode ser o clock.
Módulo de um contador é o número de diferentes estados de saída que este contador pode apresentar, antes de
retornar ao seu estado inicial.
Num contador constituído com n Flip-Flops pode, no máximo, ter um módulo de 2n
, mas se quisermos, podemos
fazer com que o contador não passe por todos os estados possíveis. Neste caso o módulo seria menor que 2n
.
74LS75
D3
D2
E23
D1
D0
E01
Q3
Q3
__
Q2
Q2
__
Q1
Q1
__
Q0
Q0
__
74LS74
CP1
D1
S1
R1
CP2
D2
S2
R2
Q1
Q1
__
Q2
Q2
__
74LS76
J1
K1
CP1
SD1
RD1
J2
K2
CP2
SD2
RD2
Q1
Q1
__
Q2
Q2
__
32
V3
0V
+V
V2
5V
Q0 Q1 Q2 Q3
CP1
CP2
Q1
Q2
V1 S
J
CP
K
R
Q
_
Q
U2B
S
J
CP
K
R
Q
_
Q
U2A
S
J
CP
K
R
Q
_
Q
U1B
S
J
CP
K
R
Q
_
Q
U1A
Contador Binário Assíncrono Módulo 16 Crescente
Para que a contagem seja decrescente, basta trocar a saída Q pela Q negada na entrada de clock seguinte.
5.11 Registradores
Registradores são conjuntos de flip-flops que podem ou não estar interconectados entre si, conforme mostrado
abaixo:
• Registradores de Armazenamento – quando os flip-flops não estão interconectados entre si
• Registradores de Deslocamento – quando os flip-flops estão interconectados entre si
Assim, um registrador de n-bits é um conjunto de n memórias de 1 bit. Normalmente, os registradores são de 8, 16
ou 32 bits. Numa CPU (unidade central de processamento) existem habitualmente vários registradores (fixos) para
tarefas específicas ou para tarefas gerais (registradores programáveis). Nesses registradores, são efetuadas as
operações de leitura ou de escrita simultaneamente em cada um dos seus bits.
Registradores são VOLÁTEIS, isto é, dependem de estar energizados para manter armazenado seu conteúdo.
Registradores são dispositivos de armazenamento temporário, localizados na CPU, extremamente rápidos, com
capacidade para apenas um dado (uma palavra). Devido a sua tecnologia de construção e por estar localizado como
parte da própria pastilha ("chip") da CPU, é muito caro. O conceito de registrador surgiu da necessidade da CPU de
armazenar temporariamente dados intermediários durante um processamento. Por exemplo, quando um dado
resultado de operação precisa ser armazenado até que o resultado de uma busca da memória esteja disponível para
com ele realizar uma nova operação.
Máquinas RISC são geralmente construídas com um grande conjunto de registradores, de forma a trazer os dados
para o mais próximo possível da CPU, de forma a que o programa opere sempre sobre dados que estão em
registradores.
4076
D3
D2
D1
D0
ED1
ED0
EO1
EO0
CP
MR
Q0
Q1
Q2
Q3
U7
74LS298
I0d
I0c
I0b
I0a
I1d
I1c
I1b
I1a
S
CP
Qd
Qc
Qb
Qa
U6
Exemplos de registradores : 4076 e 74LS298 (72298)
33
5.11.1 Registradores de Deslocamento
V7
5V
V4
5V
U5A
S
J
CP
K
R
Q
_
Q
U4B
S
J
CP
K
R
Q
_
Q
U4A
S
J
CP
K
R
Q
_
Q
U3B
S
J
CP
K
R
Q
_
Q
U3A
CP1
CP2
Q1
Q2
V6
Q3
Q2
Q1
Q0
+V
V5
5V
Registrador de deslocamento de 4 bits
A cada pulso de relógio, o Registrador de Deslocamento (Shift Register) irá deslocar a informação armazenada
entre os flip-flops, da seguinte maneira:
A informação do primeiro flip-flop é passada para o segundo
A informação do segundo flip-flop é passada para o terceiro
....................
O último flip-flop recebe a informação do penúltimo e perde a que estava nele armazenada
74LS96
S
PE
CP
PstA
PstB
PstC
PstD
PstE
MR
QA
QB
QC
QD
QE
U8
74LS95
S
CP1
CP2
D3
D2
D1
D0
DS
Q3
Q2
Q1
Q0
U9
Exemplos de registradores de deslocamento: 74LS95 e 74LS96
Dados digitais podem ser apresentados na forma série ou paralela.
Na apresentação série, os bits individuais de uma palavra são conduzidos por um único fio e são apresentados em
seqüência temporal, um bit após o outro.
Na apresentação paralela todos os bits da palavra são apresentados simultaneamente, usando tantos fios quantos
forem necessários. O formato série economiza circuitos. Por outro lado, o formato paralelo economiza tempo.
Exemplo: determinado nível lógico leva 1µs para ser reconhecido. O formato série usaria 8µs para transmitir uma
palavra de 8 bits, ao passo que o formato paralelo levaria apenas 1µs.
Diversas vezes é preciso passar de uma forma de apresentação para outra. O registrador de deslocamento pode ser
usado para este fim.
34
6
Sistemas Digitais Aplicados na
Computação
6.1 Introdução
O Objetivo deste capítulo, é mostrar de que forma os circuitos digitais, combinacionais e seqüenciais, possibilitam
a criação de uma infra-estrutura lógica e física para a construção de máquinas de processamento genéricas.
Serão abordados dois circuitos necessários ao funcionamento da arquitetura conceitual de Von Neuman, e que estão
presentes de alguma forma, nos computadores digitais. O primeiro dos circuitos a ser estudado será o Sistema de
Leitura e Escrita Indexada de Dados, onde serão mostrados projetos dos subsistemas necessários para o
armazenamento e recuperação de dados em memória principal. O segundo circuito é a Unidade Lógica e Aritmética
(ULA ou ALU), parte integrante de qualquer unidade central de processamento (CPU), e responsável pelas
operações lógicas e aritméticas necessárias durante a execução das operações pré-programadas de uma CPU.
Vale lembrar que esses sistemas mencionados, são ainda enquadrados, em parte ou em todo, na classificação
mostrada no capítulo 4: combinacionais e seqüenciais, e portanto, requerem pleno conhecimento dos conceitos já
abordados anteriormente.
6.2 Sistema Digital para Armazenamento e Recuperação de Dados
Para entendermos de que forma podemos acessar um determinado dado, armazenado em um lugar específico da
memória de um computador, temos inicialmente que definir alguns conceitos relativos à organização de
computadores, em particular, a estrutura fundamental da memória principal (MP).
6.2.1 Estrutura da MP – Células e Endereços
A memória precisa ter uma organização que permita ao computador guardar e recuperar informações quando
necessário. Portanto, não basta transferir informações para a memória. É preciso ter como encontrar essa
informação mais tarde, quando ela for necessária, e para isso é preciso haver um mecanismo que registre
exatamente onde a informação foi armazenada (lembrando nossa analogia com o computador hipotético, imagine
encontrar uma informação guardada ao acaso, se nosso escaninho tivesse 1 milhão de compartimentos ...).
Em virtude desse problema, precisamos definir dois elementos necessários à estrutura organizacional de qualquer
sistema de acesso à memória principal computacional. São eles:
35
Célula é a unidade de armazenamento do computador. A memória principal é organizada em células.
Célula é a menor unidade da memória que pode ser endereçada (não é possível buscar uma "parte"
da célula) e tem um tamanho fixo (para cada máquina). As memórias são compostas de um
determinado número de células ou posições. Cada célula é composta de um determinado número de
bits. Todas as células de um dado computador tem o mesmo tamanho, isto é, todas as células
daquele computador terão o mesmo número de bits.
Endereço é o “localizador” da célula, que permite identificar univocamente cada célula da memória. É
utilizado pelo sistema e pelos programas para referenciar posições de memória. As células são
numeradas seqüencialmente, uma a uma, de 0 a (N-1), chamado o endereço da célula.
Assim, identificamos uma célula específica pelo seu endereço associado.
O tamanho em bits das células e dos endereços de uma memória, está altamente acoplada à arquitetura interna do
processador em questão. Em geral o tamanho de uma célula poder ser igual aos da palavra (unidade de
processamento da CPU) e da unidade de transferência (quantidade de bits que vem e vai da MP à CPU), porém,
por razões técnicas e de custo, são freqüentemente diferentes.
6.2.2 Número de bits para representar um endereço
A memória principal é constituída por posições memória (células) todas com o mesmo número de bytes (1 byte =
8bits), tendo cada uma delas um endereço (valor numérico).
Expressão geral: MP com endereços de 0 a (N-1)
N = 2x
logo: x = log2 N
sendo x = nº de bits para representar um endereço e N o número de endereços.
6.2.3 Capacidade da Memória Principal
Num computador a capacidade memória (número de posições de memória) pode variar, mas está normalmente
condicionado pelo número de endereços que a CPU pode aceitar.
A capacidade da MP em bits é igual ao produto do nº de células pelo total de bits por célula.
T = capacidade da memória em bits
T = N x M
N = nº de endereços ( como vimos anteriormente, N=2x
sendo x = nº de bits do endereço)
M = nº de bits de cada célula
Para encontrar a capacidade em bytes, bastaria encontrar a capacidade em bits e depois dividir por 8 (cada byte
contém 8 bits) ou então converter o tamanho da célula para bytes e depois multiplicar pelo número de células.
O último endereço na memória é o endereço N-1 ( os endereços começam em zero e vão até N-1).
6.2.4 Projeto Simplificado de Uma Memória
Para exemplificar o acesso de leitura/escrita a uma posição de memória, vamos considerar um módulo de memória
com:
• 4 posições de memória Î 4 endereços de memória
• Cada posição com 3 bits.
• A cada posição de memória associa-se um endereço (que é um inteiro de 0 a 3). Î Serão necessários 2 bits
para representar um endereço (no caso geral, para 2n
posições de memória serão necessários n bits – ver item
5.12).
Define-se os seguintes dispositivos:
36
Registrador de endereço (MAR – Memory Address Register) – que contém o endereço de uma posição de
memória a que se quer gravar.
Registrador de conteúdo (MBR – Memory Buffer Register) – que contém um valor a escrever na memória ou que
irá conter um valor lido da memória.
O registrador MAR tem 2 bits, o registro MBR tem 3 bits e cada uma das posições de memória, à esquerda, também
tem 3 bits. Cada bit é um elemento de memória, como o exemplificado anteriormente.
Habitualmente, uma memória de um bit é representada por um quadrado que pode conter o valor 0 ou 1, consoante
o valor da sua linha de saída O. A esse valor chama-se também o seu conteúdo.
Supondo-se que o registro MAR contenha num dos elementos o valor 0 e no outro o valor 1, então a seqüência de
bits 01 corresponde em binário ao endereço da posição de memória que se irá manipular.
Obs: Em publicações na língua portuguesa é comum o uso dos termos RDM (registro de dados de memória) e
REM (registro de endereço de memória) ao invés de MBR e MAR respectivamente.
6.2.4.1 Esquema do Circuito de Escrita
Para uma operação de escrita, supomos que existe uma linha W tal que só se o seu valor for 1 é que a alteração da
posição de memória é realizada.
O registrador de endereço MAR está ligado a um decodificador que ativa uma das suas 2n
saídas de acordo com o
valor da seqüência de n bits de entrada (no decodificador). Para o caso com n=2, o decodificador ativa uma das
suas 4 saídas, cada uma das quais está ligada a uma das posições de memória. Assim colocando-se o endereço de
memória no MAR, o sistema identifica a posição de memória que se pretende alterar.
O registrador de conteúdo MBR, isto é, cada um dos seus bits, está ligado com cada uma linhas de entrada I de cada
posição de memória (isto é, com cada um dos respectivos bits). No esquema, a linha com uma seta na extremidade
- que liga o MBR a cada posição de memória - , corresponde na realidade a 3 linhas uma para cada um dos bits das
posições de memória.
Para uma posição de memória (que tem 3 bits) têm-se
Memória
Bit-0
MBR (Memory Buffer
Register)
Bit-1
Bit-2
Bit-3
Decodificador
Bit-0
Bit-1
Bit-0 Bit-1 Bit-2
W
I3
I2
I1
I0
MAR
(Memory
Address
Register)
1 0 0
0 0 0
1 0 1
0 1 1
37
Quando o valor de W é 1 então, considerando os circuitos dos elementos de memória e o decodificador, facilmente
se conclui que cada um dos bits da posição de memória apontada pelo MAR vai ficar com os valores dos
respectivos bits do MBR. Neste caso, a posição de memória 3 (Bit-2 ativo) ficaria com a seqüência 101.
6.2.4.2 Esquema do Circuito de Leitura
A leitura de um valor da memória é uma tarefa mais simples, uma vez que não se tem de alterar o estado dos
elementos de memória. Apenas, é necessário fornecer o endereço da posição de memória, como entrada, e a saída,
será a informação contida nessa posição de memória (o seu conteúdo).
Na Figura anterior apresenta-se um esquema desse circuito. Além do registrador de endereço (MAR), do
registrador de depósito de conteúdo (MBR) e das posições de memória, é necessário um multiplexador. Este
multiplexador tem:
• Uma linha de entrada para cada bit de cada uma das posições de memória ( 3 x 4 = 12)
• Duas linhas de entrada de controle.
Memória
Bit-0
MBR (Memory Buffer
Register)
MAR
(Memory
Address
Register)
Bit-1
Bit-2
Bit-3
Decodificador
Bit-0
Bit-1
Bit-0 Bit-1 Bit-2
W
MBR (Memory Buffer
Register)
1 0 1
Bit-0
Bit-1
Bit-2
Bit-3
Decodificador
Bit-0=1
Bit-1=0
W
1 0 1
1
Memória
RAM
Multiplexador
MAR
(Memory
Address
Register)
38
De acordo com o valor correspondente às linhas de controle, são selecionadas as 3 linhas da posição de memória
cujo endereço é esse valor. Assim o conteúdo dessa posição de memória é “lido” e guardado no registro de depósito
MBR.
Como no esquema anterior, as linha com uma seta na extremidade correspondem a 3 linhas, uma para cada bit das
posições de memória. Neste caso, a posição de memória selecionada foi a 3 (supondo numeradas de cima para
baixo) e portanto a seqüência 011 foi transferida para o registrador MBR.
6.2.5 Intervalo de N-Formas (N-way interleaving)
Uma abordagem interessante e de uso intensivo para aumentar a taxa de transferência de informações da MP sem a
necessidade de se aumentar o tamanho do barramento (fios conectores entre as diversas partes da cpu e os
elementos externos a ela) é a "n-way interleaving", que consiste em conjunto de memórias de mesmo tamanho com
capacidade de operar de forma paralela.
Em geral, as memórias utilizadas, dentro do contexto dessa abordagem, conseguem endereçar mais endereços do
que sua quantidade nominal (214
→216
).
Quando, na CPU, um microprograma necessita buscar uma nova palavra, ele divide o endereço de 16 bits do nível
convencional de máquina em duas partes. A parte mais direita, formada por dois bits especifica qual das memórias
será usada: 0, 1, 2 ou 3. A parte mais a esquerda, formada por 14bits, especifica o endereço real da memória em
questão.
Após o microprograma, ter determinado qual memória usar, ele coloca os 14bits mais a esquerda do endereço
envolvido no MAR associado a memória selecionada, e inicia o processo de leitura. Enquanto o microprograma
aguarda o termino da leitura, ele pode acionar a leitura de outras memórias em paralelo para buscar outros dados.
Note que as informações de endereços consecutivos k, k+1, k+2 e k+3, sempre estarão em memórias diferentes, e
como resultado, ate 4 endereços (ou instruções) podem ser buscadas em paralelo. Note que este método independe
do tamanho do MBR (no exemplo 16 bits).
AND
AND
Bit-0 do endereço-3
Bit-0 do endereço-1
Bit-0 do endereço-2
1 Para o
bit-0 do
MBR
OR
AND
AND
AND
Bit-0 do MAR=
Bit-1 do MAR=
AND
AND
Bit-0 do endereço-0
AND
Decodificador
Multiplexador
1 0 0
0 0 0
1 0 1
0 1 1
1
1
39
Memória 0 (00) 2 Memória 1 (01) 2 Memória 2 (10) 2 Memória 3 (11)2
0 Palavra 0 0 Palavra 1 0 Palavra 2 0 Palavra 3
1 Palavra 4 1 Palavra 5 1 Palavra 6 1 Palavra 7
2 Palavra 8 2 Palavra 9 2 Palavra 10 2 Palavra 11
16382 Palavra 65528 16382 Palavra 65529 16382 Palavra 65530 16382 Palavra 65531
16383 Palavra 65532 16383 Palavra 65533 16383 Palavra 65534 16383 Palavra 65535
14 16 14 16 14 16 14 16
MAR MBR MAR MBR MAR MBR MAR MBR
Endereço de 14-bits
16-bit address
Quatro memórias distintas de 214
palavras cada podem ser usadas para implementar um único espaço de endereçamento de 216
palavras
Observação :
Define-se como barramento um conjunto de fios em paralelo, realizando uma conexão elétrica cuja representando
em cada fio equivale a um bit. Em geral, são usados para conectar registradores entre si. Dois registradores de 16-
bits serão conectados entre si por uma barramento de 16 fios.
A largura de um barramento deste tipo é dito como de 16-bits, portanto, a arquitetura de um processador
específico que determina o tamanho das palavras e dos registradores, também é determinativo quanto ao tamanho
do barramento.
Campo de 2-bits seleciona
uma das quatro memórias :
0,1,2 ou 3
40
6.3 ULA (Unidade Lógica e Aritmética)
A ULA ou ALU, pode ser vista como o coração de um processador por ser ela a responsável em realizar todas as
operações lógicas e aritméticas que constantemente ocorrem em uma maquina de von newmann.
A ULA é um circuito combinacional capaz de realizar operações elementares, que em conjunto, formam operações
complexas: soma, subtração, incremento, and, or, xor, not e etc.
Uma ULA típica possui dois barramentos de entrada de dados (X) e (Y), e um barramento de saída para os
resultados (S).
Alem dos barramentos de e/s, uma ULA também possui um barramento de controle, através do qual determina-se a
operação a ser realizada em um determinado instante, e quais linhas de saída adicionais (flags) serão acionadas para
sinalizar a ocorrência de condições especiais(e. g. carry-out, overflow, e etc)
Apesar de uma ULA trabalhar com dois operandos, ela também pode executar operações que envolvam apenas um
operando (armazenado no acumulador). Por esta razão, o acumulador possui uma lógica adicional além da
necessária para torná-lo um registrador de uso geral como o registrador B.
O registrador de flags mostra o status referente à última operação executada. Por exemplo, se o resultado da
operação for zero, um flag (Z) é setado, indicando tal situação. Outros flags possíveis são : Carry, Paridade, Sinal,
overflow, e etc.
ULA
X Y
S
Seleção da
Operação
Barramento para Entrada de Dados
Barramento para Saída de Dados
Seleção da
Operação
41
Operações com Um Operando : Clear, complementação, incremento, decremento, deslocamento à esquerda,
deslocamento à direita, carga e saída de dados são exemplos de operações que ocorrme sobre um único operando.
Exemplo de Uma Operação de Complemento
Operações com Dois Operandos : Soma, Subtração, Comparação, AND, OR e XOR são exemplos de operações
que ocorrem sobre dois operandos.
Exemplo de Uma Operação de Deslocamento à Direita
Exemplo de Uma Operação de Rotação à Esquerda

Mais conteúdo relacionado

Semelhante a CIRCUITOS_DIGITAIS.pdf

12 circuitosde correntealternada-i - resistivo capacitivo indutivo
12 circuitosde correntealternada-i - resistivo capacitivo indutivo12 circuitosde correntealternada-i - resistivo capacitivo indutivo
12 circuitosde correntealternada-i - resistivo capacitivo indutivoDavidSouza163
 
Quadro EléCtrico
Quadro EléCtricoQuadro EléCtrico
Quadro EléCtricoefa10d
 
Curso básico de eletrônica digital parte 4
Curso básico de eletrônica digital parte 4Curso básico de eletrônica digital parte 4
Curso básico de eletrônica digital parte 4Renan Boccia
 
Eletroeletrônica (1ª aula)
Eletroeletrônica (1ª aula)Eletroeletrônica (1ª aula)
Eletroeletrônica (1ª aula)zeu1507
 
Introdução a Robótica com Arduino.pdf
Introdução a Robótica com Arduino.pdfIntrodução a Robótica com Arduino.pdf
Introdução a Robótica com Arduino.pdfPhdJosLima
 
ELETRODINÂMICA - CONCEITOS E DEFINIÇÕES CORRENTE ELÉTRICA
ELETRODINÂMICA - CONCEITOS E DEFINIÇÕES CORRENTE ELÉTRICAELETRODINÂMICA - CONCEITOS E DEFINIÇÕES CORRENTE ELÉTRICA
ELETRODINÂMICA - CONCEITOS E DEFINIÇÕES CORRENTE ELÉTRICAMarcellusPinheiro1
 
Discos de Estado Sólido III
Discos de Estado Sólido IIIDiscos de Estado Sólido III
Discos de Estado Sólido IIIChris x-MS
 
Eletronica basica 2,1
Eletronica basica 2,1Eletronica basica 2,1
Eletronica basica 2,1andydurdem
 
Aula 08 eletrônica - conceitos básicos
Aula 08   eletrônica - conceitos básicosAula 08   eletrônica - conceitos básicos
Aula 08 eletrônica - conceitos básicosRenaldo Adriano
 
Controlador fuzzy de pré reguladores de fator de potência
Controlador fuzzy de pré reguladores de fator de potênciaControlador fuzzy de pré reguladores de fator de potência
Controlador fuzzy de pré reguladores de fator de potênciaHugo Dionizio Santos
 

Semelhante a CIRCUITOS_DIGITAIS.pdf (20)

Apostila de elétrica circuito de ca
Apostila de elétrica circuito de caApostila de elétrica circuito de ca
Apostila de elétrica circuito de ca
 
Curso De Eletronica
Curso De EletronicaCurso De Eletronica
Curso De Eletronica
 
12 circuitosde correntealternada-i - resistivo capacitivo indutivo
12 circuitosde correntealternada-i - resistivo capacitivo indutivo12 circuitosde correntealternada-i - resistivo capacitivo indutivo
12 circuitosde correntealternada-i - resistivo capacitivo indutivo
 
Quadro EléCtrico
Quadro EléCtricoQuadro EléCtrico
Quadro EléCtrico
 
Curso básico de eletrônica digital parte 4
Curso básico de eletrônica digital parte 4Curso básico de eletrônica digital parte 4
Curso básico de eletrônica digital parte 4
 
Vivi 2
Vivi 2Vivi 2
Vivi 2
 
Vivi 2
Vivi 2Vivi 2
Vivi 2
 
Artigo multivibrador biestável
Artigo multivibrador biestávelArtigo multivibrador biestável
Artigo multivibrador biestável
 
Eletroeletrônica (1ª aula)
Eletroeletrônica (1ª aula)Eletroeletrônica (1ª aula)
Eletroeletrônica (1ª aula)
 
Introdução a Robótica com Arduino.pdf
Introdução a Robótica com Arduino.pdfIntrodução a Robótica com Arduino.pdf
Introdução a Robótica com Arduino.pdf
 
ELETRODINÂMICA - CONCEITOS E DEFINIÇÕES CORRENTE ELÉTRICA
ELETRODINÂMICA - CONCEITOS E DEFINIÇÕES CORRENTE ELÉTRICAELETRODINÂMICA - CONCEITOS E DEFINIÇÕES CORRENTE ELÉTRICA
ELETRODINÂMICA - CONCEITOS E DEFINIÇÕES CORRENTE ELÉTRICA
 
Discos de Estado Sólido III
Discos de Estado Sólido IIIDiscos de Estado Sólido III
Discos de Estado Sólido III
 
Eletronica basica 2,1
Eletronica basica 2,1Eletronica basica 2,1
Eletronica basica 2,1
 
Aula 08 eletrônica - conceitos básicos
Aula 08   eletrônica - conceitos básicosAula 08   eletrônica - conceitos básicos
Aula 08 eletrônica - conceitos básicos
 
Algebra booleana aplicações
Algebra booleana aplicaçõesAlgebra booleana aplicações
Algebra booleana aplicações
 
Controlador fuzzy de pré reguladores de fator de potência
Controlador fuzzy de pré reguladores de fator de potênciaControlador fuzzy de pré reguladores de fator de potência
Controlador fuzzy de pré reguladores de fator de potência
 
Corrente elétrica
Corrente elétricaCorrente elétrica
Corrente elétrica
 
Discretos
DiscretosDiscretos
Discretos
 
Reparacao de fontes_pc_at_
Reparacao de fontes_pc_at_Reparacao de fontes_pc_at_
Reparacao de fontes_pc_at_
 
Reparacao de fontes_pc_at_2
Reparacao de fontes_pc_at_2Reparacao de fontes_pc_at_2
Reparacao de fontes_pc_at_2
 

Último

apresentação de Bancos de Capacitores aula
apresentação de Bancos de Capacitores aulaapresentação de Bancos de Capacitores aula
apresentação de Bancos de Capacitores aulaWilliamCruz402522
 
Apresentação Manutenção Total Produtiva - TPM
Apresentação Manutenção Total Produtiva - TPMApresentação Manutenção Total Produtiva - TPM
Apresentação Manutenção Total Produtiva - TPMdiminutcasamentos
 
TRABALHO INSTALACAO ELETRICA EM EDIFICIO FINAL.docx
TRABALHO INSTALACAO ELETRICA EM EDIFICIO FINAL.docxTRABALHO INSTALACAO ELETRICA EM EDIFICIO FINAL.docx
TRABALHO INSTALACAO ELETRICA EM EDIFICIO FINAL.docxFlvioDadinhoNNhamizi
 
NR10 - Treinamento LOTO - 2023.pp tx
NR10 - Treinamento LOTO - 2023.pp     txNR10 - Treinamento LOTO - 2023.pp     tx
NR10 - Treinamento LOTO - 2023.pp txrafaelacushman21
 
07 - MICRÔMETRO EXTERNO SISTEMA MÉTRICO.pptx
07 - MICRÔMETRO EXTERNO SISTEMA MÉTRICO.pptx07 - MICRÔMETRO EXTERNO SISTEMA MÉTRICO.pptx
07 - MICRÔMETRO EXTERNO SISTEMA MÉTRICO.pptxVagner Soares da Costa
 
Lista de presença treinamento de EPI NR-06
Lista de presença treinamento de EPI NR-06Lista de presença treinamento de EPI NR-06
Lista de presença treinamento de EPI NR-06AndressaTenreiro
 
10 - RELOGIO COMPARADOR - OPERAÇÃO E LEITURA.pptx
10 - RELOGIO COMPARADOR - OPERAÇÃO E LEITURA.pptx10 - RELOGIO COMPARADOR - OPERAÇÃO E LEITURA.pptx
10 - RELOGIO COMPARADOR - OPERAÇÃO E LEITURA.pptxVagner Soares da Costa
 

Último (7)

apresentação de Bancos de Capacitores aula
apresentação de Bancos de Capacitores aulaapresentação de Bancos de Capacitores aula
apresentação de Bancos de Capacitores aula
 
Apresentação Manutenção Total Produtiva - TPM
Apresentação Manutenção Total Produtiva - TPMApresentação Manutenção Total Produtiva - TPM
Apresentação Manutenção Total Produtiva - TPM
 
TRABALHO INSTALACAO ELETRICA EM EDIFICIO FINAL.docx
TRABALHO INSTALACAO ELETRICA EM EDIFICIO FINAL.docxTRABALHO INSTALACAO ELETRICA EM EDIFICIO FINAL.docx
TRABALHO INSTALACAO ELETRICA EM EDIFICIO FINAL.docx
 
NR10 - Treinamento LOTO - 2023.pp tx
NR10 - Treinamento LOTO - 2023.pp     txNR10 - Treinamento LOTO - 2023.pp     tx
NR10 - Treinamento LOTO - 2023.pp tx
 
07 - MICRÔMETRO EXTERNO SISTEMA MÉTRICO.pptx
07 - MICRÔMETRO EXTERNO SISTEMA MÉTRICO.pptx07 - MICRÔMETRO EXTERNO SISTEMA MÉTRICO.pptx
07 - MICRÔMETRO EXTERNO SISTEMA MÉTRICO.pptx
 
Lista de presença treinamento de EPI NR-06
Lista de presença treinamento de EPI NR-06Lista de presença treinamento de EPI NR-06
Lista de presença treinamento de EPI NR-06
 
10 - RELOGIO COMPARADOR - OPERAÇÃO E LEITURA.pptx
10 - RELOGIO COMPARADOR - OPERAÇÃO E LEITURA.pptx10 - RELOGIO COMPARADOR - OPERAÇÃO E LEITURA.pptx
10 - RELOGIO COMPARADOR - OPERAÇÃO E LEITURA.pptx
 

CIRCUITOS_DIGITAIS.pdf

  • 2. 4 1 Mensagens e Sinais 1.1 Conceito Os seres não seriam perceptíveis se não existisse entre eles uma interação. Isto quer dizer que, de alguma forma, é necessário que ocorra um processo de comunicação para se perceber a existência dos seres. Só existe uma única maneira de um ser interagir com outro ser. Só existe uma única maneira de um ser tomar conhecimento da existência de outro ser: "Alguma coisa tem que sair de um e chegar até o outro." Essa coisa, denominada mensagem, pode ser enviada através de: • Um sinal que caminha através de perturbações sucessivas do meio (impulsos ou ondas no meio); • Uma parte (partícula) que sai de um ente e choca-se com outro ente; • Choque direto de mais de um ente. Assim, as mensagens se propagam por meio de sinais ou de partículas. Na primeira situação, um ser perturba o meio imediatamente próximo de si (ex: ar, água, etc.), e esta perturbação (sinal) caminha até chegar ao outro ser. É uma situação semelhante à mostrada na figura abaixo onde o estado da última bola é alterado pela ação da primeira bola, sem que tenha ocorrido o contato desta com a última bola. O que foi comunicado veio através de um sinal. Na comunicação por partícula, a mensagem chega através do choque da partícula emitida por um ente, com outro ser. ENTE ENTE choque
  • 3. 5 1.2 Tipos de Sinais Os sinais são caracterizados por pelo menos duas informações: • A intensidade (grau de força com que o sinal ocorreu ou chegou); • A fase (o instante em que o sinal ocorreu ou chegou); Conforme sua intensidade, os sinais podem ser quantizados em diversos estados: • Sinais de dois estados ou binários (existe e não existe, ligado ou desligado, aceso ou apagado, quente ou frio, disponível ou em falta) • Sinais de três estados ou ternários (a favor / contra / neutro) • Sinais de n-estados Conforme a fase os sinais podem ser classificados em: • Síncronos – ocorrem no mesmo instante • Assíncronos – ocorrem em instantes distintos 1.3 Exemplo Introdutório a) Considere um circuito elétrico composto de uma fonte de energia comercial (a alimentação da empresa de distribuição de energia, p.ex., a Light) e um interruptor (nossas entradas ) e uma lâmpada (nossa saída). A lâmpada acenderá se - e somente se • Houver energia disponível (se não estiver "faltando luz") e • O interruptor estiver ligado. Elabore uma tabela que represente esse circuito lógico. Resposta: Para este exemplo, os sinais que modelam o sistema são: • Energia – pode assumir dois estados: faltando ou disponível • Interruptor – pode assumir dois estados: desligado ou ligado • Lâmpada – pode assumir dois estados: apagada ou acesa Assim, uma tabela seria: Energia Interruptor Lâmpada Faltando Desligado Apagada Faltando Ligado Apagada Disponível Desligado Apagada Disponível Ligado Acesa b) Considere um sistema composto de duas caixas d'água (uma superior e uma cisterna). • A cisterna é alimentada pela entrada de água da "rua", via empresa distribuidora (ex.: CEDAE). • A caixa superior serve para distribuir a água, por gravidade, em todo o prédio: bicas, chuveiros, descargas sanitárias, circuitos anti-incêndio, etc, • A água da cisterna é impulsionada por uma bomba hidráulica através de uma tubulação que liga a cisterna à caixa superior. instantes Intensidade 6 Considerando que a bomba queimará se for acionada sem haver água no circuito hidráulico, projete um circuito lógico para acionar a bomba sempre que a caixa superior estiver vazia, desde que tenha água na cisterna. Resposta: Cisterna Caixa Superior Bomba Vazia Vazia Desligada Vazia Cheia Desligada Cheia Vazia Acionada Cheia Cheia Desligada c) Considere um circuito elétrico composto de uma fonte de energia comercial (a alimentação da empresa de distribuição de energia, p.ex., a Light), uma alimentação auxiliar (um gerador e um no-break, com bateria de acumulação) e um interruptor (nossas entradas ) e um sistema de computadores (nossa saída). O computador poderá operar se: • Houver energia disponível (se não estiver "faltando luz") em um dos circuitos de alimentação e • O interruptor estiver ligado. Elabore a tabela verdade que representa esse circuito lógico. Resposta: Energia Comercial Alimentação Auxiliar Interruptor Computador Faltando Faltando Desligado Não operando Faltando Faltando Ligado Não operando Faltando Disponível Desligado Não operando Faltando Disponível Ligado Operando Disponível Faltando Desligado Não operando Disponível Faltando Ligado Operando Disponível Disponível Desligado Não operando Disponível Disponível Ligado Operando 1.4 Definindo Estados Para definição do estado de um sinal, as transições são ignoradas, só a intensidade interessa para uma determinada fase (ou intervalo de tempo). • Estado-0: contraído, curto, comprimido, apagado, com luz, sem orifício (cartão) • Estado-1: distendido, longo, alargado, aceso, sem luz, com orifício (cartão) Os circuitos normalmente utilizados na construção de computadores reconhecem dois tipos de estados, (estado 0 e estado 1). Pelo fato de serem dois estados, estes circuitos são também chamados de binários. 1.5 Sensibilidade Quanto distendido, curto, comprimido? Valor Binário do Sinal Definição Faixa de Tensão 0 Falso (Low) 0 a 0,2 V 1 Verdadeiro (High) 2,5 a 5 V A implementação dos circuitos normalmente é feita através de circuitos elétricos e, assim sendo, os dois estados (0 e 1) são reconhecidos conforme haja ou não eletricidade em determinado ponto. Cisterna Caixa Superior
  • 4. 7 Nos últimos anos, grande parte dos fabricantes têm seguido uma padronização, conhecida como padrão TTL (Lógica Transistor-Transistor). De acordo com este padrão, o estado O é reconhecido para tensões entre - 0.5V e 0.8V, e o estado 1 para o nível de tensão entre +2 e +5.5V, para fases com duração até 10 ns. Estado-1: Pulsos de amplitude 5V e duração de 10 ns 1.6 Exercícios 1.6.1 Defina com suas palavras o que é um sinal analógico e um sinal digital, destacando os pontos que os diferenciam. 1.6.2 Dê exemplos, do mundo real, de sinais de mais de um estado : binários, ternários e etc. 1.6.3 Determine a partir do gráfico abaixo ao lado quais sinais são síncronos e quais representam o mesmo estado. 10 ns 5 V 8 2 Álgebra de Boole e Lógica de Circuitos 2.1 Lógica de contatos - Dispositivos bi-estáveis Uma lâmpada é um dispositivo que exibe o valor de sinais binários onde, "acesa" pode significar estado um e "apagada" estado zero. Dispositivos deste tipo são chamados bi-estáveis, pois oscilam entre dois estados que não se alteram sozinhos: sempre é preciso uma ação externa para modificá-los. Depois que são levados a qualquer um de seus dois estados, nele permanecem e é preciso uma ação externa para levá-lo ao estado oposto. O estado não se altera sozinho com o tempo. Portanto, em princípio é possível se construir máquinas lógicas, que utilize a luz como sinal binário de processamento. X é uma variável binária (só pode assumir dois valores distintos: ou 0 ou 1) Variável X Função L 0 1 0 1 2.2 Contatos em Paralelo Representam a operação OR (OU) que é simbolizada pelo caracter: + X Y L(X, Y) 0 0 1 1 0 1 0 1 0 1 1 1 L(X, Y) = X + Y X L X Y L
  • 5. 9 2.3 Contatos em Série Representam a operação AND (E) que é simbolizada pelo caracter: . X Y L(X, Y) 0 0 1 1 0 1 0 1 1 0 0 0 L(X, Y) = X .Y 2.4 Inversão , Negação ou Complementação X L(X) 0 1 1 0 _ L = X 2.5 Circuitos Singulares Sempre aberto: 0 Sempre fechado: 1 2.6 As cinco portas lógicas Abstraindo-se a implementação física da lógica de contatos, é fácil se definir as cinco portas lógicas que são os principais blocos construtores do nível de lógica digital. A B X A B X 0 0 0 0 0 0 0 1 0 0 1 1 1 0 0 1 0 1 1 1 1 1 1 1 A B X A B X 0 0 1 0 0 1 0 1 1 0 1 0 1 0 1 1 0 0 1 1 0 1 1 0 X Y L X L A B X AND A B X OR A B X NAND A B X NOR 10 A X 0 1 1 0 2.7 Implementação física das Portas Lógicas 2.7.1 Síntese Mecânica Utilizando sinais mecânicos pode-se construir Gates mecânicos, conforme mostrado a seguir Gate AND Gate OR AND 2.7.2 Síntese por fios Gate OR Gate AND α pequeno 2.7.3 Síntese com a luz Também é possível se construir gates que utilizem sinais luminosos. O mais simples deles é o gate OR. Este gate deverá responder com "ACESO" se qualquer luz chegar à qualquer uma de suas entradas. A forma mais simples de se realizar o gate OR com luz, utiliza espelhos conforme mostrado na figura abaixo: α A X INVERSOR
  • 6. 11 O gate NOT utilizando sinais de luz é um pouco mais trabalhoso, pois envolve o fenômeno da interferência. Este fenômeno ocorre quando dois feixes de luz que percorrem caminhos diferentes se superpõem (interferência de Fraunhofer). Nesse ponto as duas ondas podem se somar (interferência construtiva) ou subtrair (interferência destrutiva) produzindo franjas claras e escuras. Assim se for utilizado numa das entradas do gate uma lâmpada constantemente acesa como referência e na outra entrada um sinal luminoso qualquer (aceso ou apagado), posicionando-se a saída na região onde ocorre a interferência destrutiva, pode-se obter o gate NOT. É importante observar que o tamanho do orifício de entrada e saída devem ser da mesma ordem de grandeza do comprimento de onda de luz incidente. Como dois gates: OR e NOT pode-se montar o gate AND . É importante notar que alguns dos gates devem ser trabalhados para compensar as perdas de intensidade da luz devido ao processo de reflexão e refração. 2.7.4 Síntese Eletrônica 2.7.4.1 Inversor NOT O transistor pode operar como uma chave binária muito rápida: Um transistor bipolar em um circuito simples, conforme mostrado na figura ao lado, possui três conexões com o mundo exterior: • O coletor, • A base • O emissor. VCC é uma tensão regulada externamente, tipicamente +5 volts. O resistor é necessário para limitar a corrente que passa pelo transistor. • Quando a tensão de entrada VIN, está abaixo de certo valor crítico, o transistor abre e age como uma resistência infinita, fazendo a saída do circuito, VOUT, adquirir um valor muito próximo a VCC. • Quando VIN excede o valor crítico, o transistor fecha e age como um fio, fazendo VOUT ser ligado à terra (por convenção, 0 volt). • Quando VIN é baixo, VOUT é alto, e vice-versa. Este circuito é, portanto, um inversor convertendo um 0 lógico em um 1 lógico, e um 1 lógico em um 0 lógico. Base Coletor Emissor VIN VCC VOUT 12 2.7.4.2 Porta NAND Dois transistores ligados em série: • Se tanto V1 quanto V2 forem altos, ambos os transistores conduzirão, e VOUT será baixo. • Se uma das entradas estiver em nível baixo, o transistor correspondente abrirá, e a saída será alta. • VOUT será baixa se e somente se, tanto V1 quanto V2 estiverem altas. 2.7.4.3 Porta NOR Dois transistores ligados em paralelo: • Se qualquer entrada estiver alta, o transistor correspondente fechará e a saída será aterrada. • Se ambas as entradas estiverem baixas, a saída permanecerá alta. 2.8 A dualidade das portas Conforme pode ser visto, um circuito AND é exatamente igual a um circuito OR quando se troca o zero pelo um e o um pelo zero. Assim, quando fazemos um AND estamos simultaneamente fazendo um OR. O mesmo acontecendo com o NAND e o NOR. Uma forma se reproduz na outra. O mesmo pode ser observado para as portas NAND e NOR. Entretanto a porta NOT não sofre alteração, de forma que os duais para circuitos lógicos são: PORTAS DUAL OR AND AND OR NOR NAND NAND NOR NOT NOT 2.9 Definição Axiomática da Álgebra de Boole Devido à simplicidade de projeto e construção, acarretando na redução de seu custo e maior confiabilidade, os circuitos eletrônicos (que formam os computadores digitais) são capazes de distinguir apenas dois níveis de tensão - computadores digitais binários. Estes sinais elétricos são tensões que assumem dois diferentes valores: um valor positivo (cerca de +3 V - três volts positivos) para representar o valor binário 1 e um valor aproximado a 0 V (zero V2 V1 VCC VOUT V2 V1 VCC VOUT
  • 7. 13 volt) para representar o valor binário 0. Na realidade, estes valores não são absolutos, e sim faixas de valores, com uma margem de tolerância (entre +2.5 e +3.5 V, representando o valor binário 1, e entre 0 e + 0,5 V representando o valor binário 0). A lógica que permite aos computadores operar baseados nestes dois valores é chamada Álgebra de Boole, em homenagem ao matemático inglês George Boole (1815-1864). Esta lógica, incluindo o estudo de alguns Circuitos Lógicos elementares, é baseada em um conjunto de axiomas conforme mostrado a seguir. 2.10 Axiomas de Boole Seja um conjunto B que contém pelo menos 2 elementos (0 e 1) e duas operações internas (. e +) sobre E, isto é: B = { E, . , +, 0, 1}. Para este conjunto são definidos 9 axiomas (denominados axiomas de Boole) : Associatividade : A1. (X +Y) + Z = X + (Y + Z) A2. (X . Y) . Z = X . (Y . Z) Comutatividade : A3. X + Y = Y + X A4. X . Y = Y . X Dos Elementos Neutros A5. X + 0 = 0 + X = X A6. X . 1 = 1 . X = X Distributividade A7. X . (Y + Z) = (X . Y ) + (X . Z) A8. X + (Y . Z) = (X + Y) . (X + Z) Existência de Complemento _ _ _ A9. ∀ X ∃ X ⎜ X . X = 0 e X + X = 1 14 3 Funções Lógicas de Variáveis Binárias 3.1 Conceito As funções lógicas são definidas através de: • Tabela da Verdade : tabela de valores da função para todas as combinações das variáveis • Funções +, . e ¯ : qualquer função booleana pode ser escrita em função dos operadores fundamentais • Blocos Lógicos 3.2 Funções de uma variável X F1=Nula / Aberto F2=Identidade F3=Inversor F4= Fechado 0 0 0 1 1 1 0 1 0 1 3.3 Funções de duas variáveis Variáveis Uma Saída ativa Duas Saídas ativas Três Saídas ativas 4 X1 X2 F1 F2 F3 F4 F5 F6 F7 F8 F9 F10 F11 F12 F13 F14 F15 F16 Nula And Nor ⊕ Comp Nand Implic OR Unit 0 0 0 0 0 0 1 1 0 0 0 1 1 1 1 1 0 1 0 1 0 0 0 1 0 0 1 0 1 1 0 1 1 0 1 1 1 0 0 0 1 0 0 1 0 1 1 0 0 1 0 1 1 1 1 1 0 1 0 0 0 0 1 1 0 0 1 0 1 1 1 1 Existem ao todo: 1 2 2 = 4 funções Existem ao todo: 2 2 2 = 16 funções Fi X Y = Fi(X) Fi X1 Y = Fi(X) X2
  • 8. 15 3.4 Funções de n variáveis 1 variável Î 2 linhas e 4 colunas 2 variáveis Î 4 linhas e 16 colunas 3 variáveis Î 8 linhas e 64 colunas 4 variáveis Î 16 linhas e 256 colunas 3.5 Teorema de Morgan Pelo teorema de Morgan bastam dois "gates" ( AND e NOT ou OR e NOT) para se obter o terceiro "gate". Isto é fácil de se ver, pois o teorema mostra que: a) A inversão de X + Y reproduz X . Y com cada sinal invertido, logo tendo os "gates" OR (+) e NOT (barra) e invertendo-se os sinais X e Y, pode obter-se o "gate" AND (.). b) A inversão de X . Y reproduz X + Y com cada sinal invertido, logo tendo os "gates" AND (.) e NOT (barra) e invertendo-se os sinais X e Y, pode obter-se o "gate" OR (+). O teorema de Morgan formaliza o fenômeno da dualidade das portas lógicas (ver item 2.8) 3.6 Regras para representação das condições de Saída Graças ao Teorema de Morgan, pode-se concluir que existem duas formas canônicas para representação das condições de saída: a) Formas que produzem saída 1 (e portanto as demais condições produzem saída 0) ou alternativamente, b) Formas que produzem saída 0 (e portanto as demais condições produzem saída 1). Assim, uma forma representa as condições que produzem saída 1 (SOMA DOS MINITERMOS) , a outra representa as condições que produzirão saída 0 (PRODUTO DOS MAXITERMOS). Essas formas são alternativas, isto é, a expressão poderá ser encontrada aplicando-se alternativamente UMA ou OUTRA das formas. MINITERMO - são termos somente com AND (termos PRODUTO) MAXITERMO - são termos somente com OR (termos SOMA). Existem ao todo: n 2 2 funções As funções são tabuladas com: 2 2 linhas e n 2 2 colunas Y X Y X . = + Y X Y X + = . Y X + Y X. OR X Y X Y X . Y AND X Y Y X. Y X + X Y X Y AND X + Y OR X Y 16 3.7 Operador NOR 3.7.1 Definição _ NOR de uma entrada: ↓ X = X (negação pura) _ _ _____ NOR de duas entradas: X ↓ Y = X . Y = X + Y 3.7.2 Propriedades • O operador NOR é comutativo: X ↓ Y = Y ↓ X • O operador NOR não é associativo: X ↓ Y ↓ Z ≠ (X ↓ Y) ↓ Z ≠ X ↓ (Y ↓ Z) 3.7.3 Síntese de Operadores por meio do NOR Operador OR Operador AND 3.8 Operador NAND 3.8.1 Definição _ NAND de uma entrada: ↑ X = X (negação pura) _ _ _____ NOR de duas entradas: X ↑ Y = X + Y = X . Y 3.8.2 Propriedades • O operador NAND é comutativo: X ↑ Y = Y ↑ X • O operador NAND não é associativo: X ↑ Y ↑ Z ≠ (X ↑ Y) ↑ Z ≠ X ↑ (Y ↑ Z) X Y Z NOR X Y Z NAND X1 X2 Nor 0 0 1 0 1 0 1 0 0 1 1 0 X1 X2 Nand 0 0 1 0 1 1 1 0 1 1 1 0 X + Y X ↓ Y = Y X Y X ∧ = ∨ OR X Y X + Y = Y X↓ X ↓ Y X Y NOR X .Y = Y X↓ X Y X Y NOR X ↑ Y = Y X Y X + = . X .Y AND X Y
  • 9. 17 3.8.3 Síntese de Operadores por meio do NAND Operador AND Operador OR 3.9 Relação entre NAND e NOR 3.10 Operador XOR (ou exclusivo) 3.10.1 Definição A função booleana “ou-exclusivo” (XOR) só gera uma saída ativada quando apenas uma das entradas está ativada, isto é: X Y Z=X R 0 0 0 0 1 1 1 0 1 1 1 0 Z = X Y 3.10.2 Propriedades A função XOR apresenta uma propriedade muito interessante quando se combina a saída Z com alguma das entradas, conforme pode ser visto a seguir: X Z X R 0 0 0 0 1 1 1 1 0 1 0 1 Pela tabela anterior pode-se verificar que quando o XOR for aplicado em uma das variáveis X ou Y junto com o valor do XOR das duas variáveis (X Y), o resultado reproduz uma das variáveis (no caso a variável Y), isto é: Se Z = X Y Î X Z = Y (resulta no valor original), e Y Z = X Esta propriedade é extremamente útil em algoritmos de criptografia e também na computação gráfica Y X Y X Y X Y X ↓ = + = = ↑ . X . Y = Y X↑ X ↑ Y X Y NAND X Y X + Y = Y X↑ X Y NAND 18 Assim, a aplicação do operador XOR à saída de um outro operador XOR com um dos sinais, restaura o outro sinal Z Y X 0 0 0 1 1 0 1 0 1 0 1 1 Z X Y 0 0 0 1 0 1 1 1 0 0 1 1 Devido a essa propriedade, o operador XOR é muito usado na criptografia 3.11 Exercício Algoritmos de criptografia são muito utilizados em páginas de comércio eletrônico da Internet e na construção de redes VPN (Virtual Private Network), para garantir o sigilo na comunicação entre um cliente e o servidor. Normalmente esses algoritmos usam uma chave K conhecida do cliente (ou dinamicamente transferida de um servidor em tempo de execução) que é utilizada para criptografar o conteúdo de uma mensagem (que pode ser o número do cartão de crédito do cliente, o valor da compra, o código do lojista, etc.) segundo a expressão: Z = K Θ Conteúdo O valor Z, criptografado, é enviado do cliente ao servidor onde é descriptografado com a mesma chave K segundo a expressão: Z Θ K = Conteúdo Qual a sugestão que você daria para o operador Θ ? Resposta O operador é semelhante à função XOR, já que: Se Z = X Y Î X Z = Y (resulta no valor original), e Y Z = X
  • 10. 19 20 4 Circuitos Lógicos 4.1 Descrição dos Circuitos Básicos De uma maneira geral, os circuitos digitais utilizados num computador podem ser de dois tipos: (i) Circuitos Combinacionais • FULL-ADDER • DECODER/DEMULTIPLEXER • COMPARER • CONVERTER • DATA SELECTOR/MULTIPLEXER (ii) Circuitos Seqüenciais • MEMORY CELL • FLIP-FLOP • CLOCK • REGISTER A base desses circuitos são os "gates": AND (.), OR (+ ) e NOT (¯) 4.2 Circuitos Combinacionais São circuitos que realizam alguma função booleana de n variáveis As funções sempre poderão ser escritas com os operadores OR, AND e NOT Por razões práticas um circuito poderá ser melhor realizado (menos Gates, menos custos, mais rápido, etc.) com uma tecnologia particular (NAND, NOR, etc.) 4.3 Comparador de Bit Circuito tal que: Z = 1 se x = y Z = 0 se x ≠ y Tabela da Verdade: X Y Z 0 0 1 1 0 1 0 1 1 0 0 1
  • 11. 21 _ _ Função Booleana: Z = (X . Y) + (X . Y) Diagrama de Blocos: 4.4 A Soma dos Minitermos É produzida construindo: • Um termo (uma sub-expressão) para cada linha da tabela verdade (que representa uma combinação de valores de entrada) em que a saída é 1, • Cada um desses termos é formado pelo PRODUTO (FUNÇÃO AND) das variáveis de entrada, sendo que: - Quando a variável for 1, mantenha; - Quando a variável for 0, complemente-a (função NOT). • A função booleana será obtida unindo-se os termos PRODUTO (ou minitermos) por uma porta OR (ou seja, "forçando-se" a saída 1 caso qualquer minitermo resulte no valor 1). Dessa forma, ligando os termos-produto (também chamados minitermos) pela porta OR, caso QUALQUER UM dos minitermos seja 1 (portanto, caso qualquer uma das condições de valores de entrada que produz saída 1se verifique), a saída pela porta OR será também 1. Ou seja, basta que se verifique qualquer uma das alternativas de valores de entrada expressos em um dos minitermos, e a saída será também 1, forçada pelo OR. Caso nenhuma dessas alternativas se verifique, produz-se a saída 0. 4.5 Decodificador Circuito combinacional que a cada valor do elemento de informação faz corresponder o valor 1 a uma e só uma saída. Tabela da Verdade: X Y S1 S2 S3 S4 0 0 1 0 0 0 0 1 0 1 0 0 1 0 0 0 1 0 1 1 0 0 0 1 Funções Booleanas: Y X S . 2 = Y X S . 4 = Diagrama de Blocos: Y X S . 1= Y X S . 3 = AND OR AND X Y Z AND AND X Y S1 AND AND S2 S3 S4 22 4.6 Data Selector / Multiplexador Circuito combinacional onde a saída S depende de um controle K denominado chave. Assim, dependendo da chave uma das entradas será enviada à saída. A chave K seleciona qual das entradas se deseja na saída. 4.6.1 Caso de 2 entradas Tabela da Verdade: K S 0 X 1 Y Função Booleana: Diagrama de Blocos: 4.6.2 Caso de 4 entradas Tabela da Verdade: K1 K2 S 0 0 X1 0 1 X2 1 0 X3 1 1 X4 Função Booleana: Diagrama de Blocos: ( ) ( ) K Y K X S . . + = ( ) ( ) ( ) ( ) 2 . 1 . 4 2 . 1 . 3 2 . 1 . 2 2 . 1 . 1 K K X K K X K K X K K X S + + + = AND AND X Y K S OR AND AND X1 X3 X2 S OR AND AND AND K1 K2 AND AND X4 AND Decodificador
  • 12. 23 4.7 Produto dos Maxitermos É produzida construindo: • Um termo (uma sub-expressão) para cada linha da tabela verdade (que representa uma combinação de valores de entrada) em que a saída é 0, • Cada um desses termos é formado pela SOMA (FUNÇÃO OR) das variáveis de entrada, sendo que: - Quando a variável for 0, mantenha; - Quando a variável for 1, complemente-a (função NOT). • A função booleana será obtida unindo-se os termos SOMA (ou maxitermos) por uma porta AND (ou seja, "forçando-se" a saída 0 caso qualquer minitermo resulte no valor 0). Dessa forma, ligando os termos-soma (também chamados maxitermos) pela porta AND, caso QUALQUER UM dos minitermos seja 0 (portanto, caso qualquer uma das condições de valores de entrada que produz saída 0 se verifique), a saída pela porta AND será também 0. Ou seja, basta que se verifique qualquer uma das alternativas de valores de entrada 0 expressos em um dos maxitermos, e a saída será também 0, forçada pelo AND. Caso nenhuma dessas alternativas se verifique, produz-se a saída 1. 4.8 Demultiplexador Circuito combinacional que conforme o valor de K conecta a entrada E à uma das saídas S Tabela da Verdade: K1 K2 S1 S2 S3 S4 0 0 E 0 0 0 0 1 0 E 0 0 1 0 0 0 E 0 1 1 0 0 0 E Função Booleana: Diagrama de Blocos: ( ) 2 . 1 . 1 K K E S = ( ) 2 . 1 . 2 K K E S = ( ) 2 . 1 . 3 K K E S = ( ) 2 . 1 . 4 K K E S = AND AND E S3 S2 S1 AND AND AND K1 K2 AND AND S4 AND Decodificador 24 C S B A 4.9 Circuito Somador (ADDER) 4.9.1 O Half Adder Considere a adição de 2 algarismos binários: a e b, gerando um algarismo s de saída e um algarismo c do vai 1 (carrier) a b S C 0 0 0 0 0 1 1 0 1 0 1 0 1 1 0 1 Este circuito pode ser sintetizado com as seguintes funções: S = a ⊕ b C = a . b Assim, o half adder é um circuito combinacional composto de dois elementos: um XOR (exclusive-or) e um gate AND. Circuito half-adder 4.9.2 O Adder A adição de dois algarismos binários ai e bi, considerando um carrier c i anterior, é feita através de um circuito ADDER. Entrada Saída c i ai bi si ci+1 0 0 0 0 0 0 0 1 1 0 0 1 0 1 0 0 1 1 0 1 1 0 0 1 0 1 0 1 0 1 1 1 0 0 1 1 1 1 1 1 Neste caso: ( ) [ ] ( ) [ ] b a c b a c s i i i ⊕ + ⊕ = . . logo si = ai ⊕ bi ⊕ c i+1 i i i i i i i i i c a b c b a b a c . . . . . 1 + + = + [ ] ( ) [ ] i i i i i i c b a b a c . . 1 ⊕ + = + Circuito Somador (2 meio-somadores) Half Adder a b S ... saída C ... carrier (vai 1) Adder ai bi si ... saída ci+1 ... carrier (vai c i Si Ci Bi Ai Ci+1
  • 13. 25 4.9.3 O Full Adder Permite a adição de 2 números binários de tamanho “n”, pela utilização de circuitos ADDER 4.10 Procedimento para Construção de Circuitos Lógicos O mesmo comportamento (a mesma tabela da verdade) pode ser igualmente representada por qualquer das formas canônicas. Se ambas as formas canônicas produzem expressões equivalentes, como escolher qual a representação a utilizar? Escolha a que resultar em menor número de termos, produzindo uma expressão mais simples. Por esse método, pode-se encontrar a expressão que represente qualquer tabela verdade. Após se encontrar uma expressão que represente o comportamento esperado, é possível que não seja uma expressão simples que possa ser construída com poucas portas lógicas. Antes de projetar o circuito, é útil SIMPLIFICAR a expressão, de forma a possibilitar construir um circuito mais simples e portanto mais barato. Portanto, o fluxo de procedimento será: DESCRIÇÃO VERBAL ---> TABELA VERDADE ---> FORMA CANÔNICA ---> FUNÇÃO SIMPLIFICADA ---> CIRCUITO c0=0 ADDER a0 b0 s0 c1 ADDER a1 b1 s1 c2 ADDER a2 b2 s2 c3 ADDER a3 b3 s3 c4 26 5 Circuitos Seqüenciais 5.1 Elemento Lógico Monoestável Circuitos seqüenciais são circuitos lógicos que não correspondem diretamente a funções booleanas porque a saída de uma porta pode estar ligada, através de outras portas, a uma entrada dessa porta, como ilustra a Figura abaixo O circuito acima consiste de apenas uma porta “Ou” realimentada. Se A e Q estão no nível lógico “0” Î B está também no nível lógico “0” Se A muda para “1” Î Q irá para “1” Î B muda para “1” Se A retorna para “0” com B ainda em “1” Î Q não muda e permanece em “1” Î Elemento guarda a saída lógica “1” para sempre Î A porta “OU” lembrará o último “1” recebido Assim, o circuito acima é uma unidade lógica básica com memória monoestável (só tem um estado lógico estável que é o “1”) O comportamento de um circuito seqüencial tem de ser especificado em função do tempo para todos os possíveis valores das entradas e dos estados internos das memórias. Assim, nos circuitos seqüenciais existem dispositivos que memorizam resultados, são as “unidades de memória” de modo a que os valores das saídas num dado instante dependem também do estado desses dispositivos. 5.2 Elemento Lógico Bi-estável No circuito da Figura acima suponhamos que A e B estão com o valor 1. Então a saída da porta “OR” é 1, e assim, as entradas na porta “AND” são 1 e a sua saída é C = 1. Se A tiver o valor 0, o valor de C não se altera. No entanto, Q OR B A AND OR A B C
  • 14. 27 se B for zero o valor de C também passa a ser 0, independentemente do valor de A. Î o circuito memorizou o sinal colocado em B (neste caso A = 1 funciona como um sinal “memorize B” para o circuito). 5.2.1 Circuito Astável ou Gerador de Onda de Relógio (CLK) Um circuito astável tem dois estados, sendo os 2 quase-estável. Sem a ajuda de um sinal de disparo externo, a configuração astável fará sucessivas transições de um estado quase-estável para o outro. Assim o circuito astável é um oscilador e é usado como um gerador de ondas quebradas ou uma forma de onda de relógio. Gráfico de um sinal de relógio Gerador de relógio (pulser) 5.3 A Memória A capacidade ``recordar'' dos circuitos seqüenciais permite que sejam usados na construção de unidades de memória e de registradores. Uma memória de um bit é um circuito capaz de recordar ao longo do tempo o valor da sua entrada e produzir esse valor. Um destes circuitos muito simples é apresentado na Figura a seguir. O circuito é controlado pela linha de entrada L (Store), que permite a atualização do valor ``guardado'' pelo circuito. Normalmente, o valor dessa linha é 0 e o valor da saída permanece, ao longo do tempo, sempre o mesmo. Se L=0 e O=1 então, as entradas na porta b são ambas 1 e portanto a saída da porta d é 1, isto é, se o valor de O é 1 permanece 1. Se o valor de L=0 e O=0, então uma das entradas da porta b é 0, o que significa que a sua saída é também 0. Assim as duas entradas da porta d são 0, produzindo um valor 0 para O. Se o valor de L passa a 1, então, por causa do inversor a a saída da porta b é 0. Se a primeira entrada da porta c é 1, então o valor da saída desta porta é o valor de I (entrada “Data”) e que será também o valor de O. Assim, se L=1 o valor de saída do circuito é valor da entrada I. Se L passar para 0, o valor de saída do circuito permanecerá esse valor. AND OR AND AND AND READ DATA STORE “1 “ RESET L O Porta b Porta d Inversor a Porta c CP1 CP2 Q1 Q2 V1 28 Na prática, os elementos de memória, são mais complexos e, em particular, tem associados um circuito de relógio que permite controlar temporalmente (sincronizar) as várias componentes dos circuitos sequenciais. Os circuitos de relógio são elementos que apenas emitem um sinal com uma frequência bem determinada. As primeiras tecnologias utilizadas em memórias foram as memórias de núcleos magnéticos, hoje apenas uma curiosidade. As memórias modernas, conforme visto, são compostas por circuitos semicondutores, com novas tecnologias sendo criadas a cada ano permitindo que grandes quantidades de células de memória sejam encapsuladas em pequenas pastilhas. 5.4 Flip-Flop É um elemento lógico biestável (possui 2 estados lógicos estáveis). Tem uma ou mais entradas e duas saídas (geralmente complementares: Q e Q ). É um circuito que permanecerá em seu último estado a menos que um sinal de entrada cause uma mudança. 5.5 Flip-Flop RS É o mais simples É a célula básica de outros Flip-Flops Tem duas entradas: S = Set e R = Reset Tem duas saídas: Q e Q (a) Se S= 0 e R = 1 Î Q = ) . ( Q S = ) . 0 ( Q = ) 0 ( = 1 Î Q=1 independente do estado anterior Î Q =0 A partir do instante em que Q = 0, a saída Q permanecerá em “1” (independente de S) Î S=1 e R=1 Î Q = 1 (o estado anterior é conservado) (b) Se S=1 e R = 0 Î Q = ) . ( Q R = ) . 0 ( Q = ) 0 ( = 1 Î Q = ) . ( Q S = ) 1 . 1 ( = ) 1 ( = 0 (independente do nível lógico de R) A partir do instante em que Q = 0, a saída Q permanecerá em “1” (independente de R) Î S=1 e R=1 Î Q = 0 (o estado anterior é conservado) e Q = 1 (c) Se R=0 e S=0 Î Q=1 e Q =0 (d) Por (a) S=1 e R=1 Î Q = 1 (o estado anterior é conservado) Por (b) S=1 e R=1 Î Q = 0 (o estado anterior é conservado) Logo, se S=1 e R=1 Î Q=0 ou Q=1 (dependendo da velocidade de chaveamento): Se a porta de R é mais rápida Î ela vê em suas entradas R=Q=1 Î força a saída Q =0 Î na entrada da porta de S tem-se S=1 e Q =0 Î força a saída Q=1 Î Q = ) . ( Q R = ) 1 . 1 ( = ) 1 ( = 0 Î Q não muda É impossível se saber à priori qual porta é a mais rápida ou mais lenta Î não se pode afirmar quais serão os níveis lógicos nas saídas Î situação indeterminada S R Q Q Reset 0 1 1 0 R recebe “1” Î Q vai para 1 independente de S 1 1 1 0 Conserva estado anterior de Q e Q (qualquer pulso em S não tem efeito na saída) Set 1 0 0 1 S recebe “1” Î Q vai para 0 independente de R 1 1 0 1 Conserva estado anterior de Q e Q (qualquer pulso em R não tem efeito na saída) Ambos 0 0 1 1 R e S após assumirem “0” retornam a “1” 1 1 ? ? Indeterminado Em uma montagem com portas Nor, o FF-RS manteria o estado anterior quando ambos S e R forem 0. S R NAND NAND Q __ Q
  • 15. 29 5.6 Flip-Flop RS com Relógio CLK = entrada do relógio Portas A e B: formam um FF-RS Portas C e D: permitem a passagem dos sinais S e R se CLK = 1 Os instantes de subidas e descidas do relógio são muito bem definidos no tempo Î O relógio serve como referência para os demais sinais Condições: • As informações já devem estar presentes nas entradas S e R quando chegar o pulso do relógio • A duração do pulso do relógio deve ser suficiente para que a informação passe para as saídas Q e Q , pois a transferência de informação não é instantânea (devido aos diversos tempos de atraso e de propagação). • As entradas S e R não variam enquanto o pulso do relógio estiver presente. Se CLK = 0 Î S1 = R1 = 1 (independente de S e R) Î S e R estão inibidas pois não conseguem acionar o FF-RS Se CLK = 1 Î S1 = ) . ( CLK S = ) 1 . (S = S e R1 = ) . ( CLK R = ) 1 . (R = R Î funciona como simples FF-RS Î FF-RS tem condições de armazenar as informações de S ou de R Vantagem: as saídas Q e Q estarão sincronizadas com o restante do circuito que use o mesmo relógio Entradas Durante o pulso Após o pulso S R Q Q Q Q 0 1 0 1 0 1 1 0 1 0 1 0 0 0 Conserva Estado Conserva Estado 1 1 1 1 Indeterminado 5.7 Flip-Flop RS com Preset, Clear e Relógio S1 R1 A B Q __ Q C D S R CLK S1 R1 A B Q __ Q C D S R CLK PR CLR 30 PR (Preset) e CLR (Clear) atuam independentes do relógio CLK Î podem ser acionados de modo assíncrono (sem estar em sincronismo com o relógio) O estado normal das entradas PR e CLR é “1” Quando CLK = 1: Se PR = 0 e CLR = 1 Î Q = 1 e Q = 0 Se PR = 1 e CLR = 0 Î Q = 0 e Q = 1 Quando CLK = 1 Î tanto S quanto PR atuam como “Set” enquanto as entradas R e CLR atuam como “Reset” Quando CLK = 0 Î as entradas PR e CLR atuam como S e R Através das entradas PR e CLR é possível a modificação do estado do FF mesmo que CLK esteja no nível “0” Mas o Flip-flop continua apresentando o problema da indeterminação 5.8 Flip-Flop D sensível ao nível do pulso de Relógio As entradas S e R são sempre uma inversa da outra Î R = S Î Não existe mais a situação de porta mais rápida que a outra Î Resolve a condição de indeterminação do flip-flop RS. S R Q Q 0 1 1 0 1 0 0 1 Problema: só tem uma única entrada S (pois R é automaticamente determinado pela inversão de S) 5.9 Flip-Flop JK Mestre S1 R1 A B Q __ Q C D S R CLK PR CLR Escravo S2 R2 A B Q __ Q C D Q1 Q2 S1 R1 E F G H J K CLK
  • 16. 31 Consiste de dois flip-flop RS com relógio, um denominado mestre (master) e o outro escravo (slave) Permite duas entradas (J e K) Resolve a condição de indeterminação do flip-flop RS Quando CLK = 1: Se J = 0 , K = 0 Î S1 = R1 = 1 e CLK = 0 Î S2 = R2 = 1 Î o Flip-flop escravo não muda Î A informação para o escravo é passada quando o pulso do relógio retorna ao nível o (CLK = 0 Î CLK = 1) Î Q = Qanterior e Q = Q anterior Entradas Saídas J K Q Q 0 0 Qanterior Q anterior 0 1 1 0 1 0 Q anterior Qanterior 1 1 1 1 Latches e Flip-Flops : CI´s: 74LS74, 74LS75 e 74LS76 5.10 Contadores São circuitos digitais que variam os seus estados, sob o comando de um clock, de acordo com a seqüência pré- determinada. São utilizados principalmente para contagens, geradores de palavras, divisores de freqüência, medidas de freqüência e tempo, geradores de forma de onda, conversão de analógico para digital, sequenciamento de operações de máquinas etc. 5.10.1 Contadores Assíncronos Consistem de vários Flip-Flops conectados em série que avançam de um estado para o outro em resposta a um evento, que pode ser o clock. Módulo de um contador é o número de diferentes estados de saída que este contador pode apresentar, antes de retornar ao seu estado inicial. Num contador constituído com n Flip-Flops pode, no máximo, ter um módulo de 2n , mas se quisermos, podemos fazer com que o contador não passe por todos os estados possíveis. Neste caso o módulo seria menor que 2n . 74LS75 D3 D2 E23 D1 D0 E01 Q3 Q3 __ Q2 Q2 __ Q1 Q1 __ Q0 Q0 __ 74LS74 CP1 D1 S1 R1 CP2 D2 S2 R2 Q1 Q1 __ Q2 Q2 __ 74LS76 J1 K1 CP1 SD1 RD1 J2 K2 CP2 SD2 RD2 Q1 Q1 __ Q2 Q2 __ 32 V3 0V +V V2 5V Q0 Q1 Q2 Q3 CP1 CP2 Q1 Q2 V1 S J CP K R Q _ Q U2B S J CP K R Q _ Q U2A S J CP K R Q _ Q U1B S J CP K R Q _ Q U1A Contador Binário Assíncrono Módulo 16 Crescente Para que a contagem seja decrescente, basta trocar a saída Q pela Q negada na entrada de clock seguinte. 5.11 Registradores Registradores são conjuntos de flip-flops que podem ou não estar interconectados entre si, conforme mostrado abaixo: • Registradores de Armazenamento – quando os flip-flops não estão interconectados entre si • Registradores de Deslocamento – quando os flip-flops estão interconectados entre si Assim, um registrador de n-bits é um conjunto de n memórias de 1 bit. Normalmente, os registradores são de 8, 16 ou 32 bits. Numa CPU (unidade central de processamento) existem habitualmente vários registradores (fixos) para tarefas específicas ou para tarefas gerais (registradores programáveis). Nesses registradores, são efetuadas as operações de leitura ou de escrita simultaneamente em cada um dos seus bits. Registradores são VOLÁTEIS, isto é, dependem de estar energizados para manter armazenado seu conteúdo. Registradores são dispositivos de armazenamento temporário, localizados na CPU, extremamente rápidos, com capacidade para apenas um dado (uma palavra). Devido a sua tecnologia de construção e por estar localizado como parte da própria pastilha ("chip") da CPU, é muito caro. O conceito de registrador surgiu da necessidade da CPU de armazenar temporariamente dados intermediários durante um processamento. Por exemplo, quando um dado resultado de operação precisa ser armazenado até que o resultado de uma busca da memória esteja disponível para com ele realizar uma nova operação. Máquinas RISC são geralmente construídas com um grande conjunto de registradores, de forma a trazer os dados para o mais próximo possível da CPU, de forma a que o programa opere sempre sobre dados que estão em registradores. 4076 D3 D2 D1 D0 ED1 ED0 EO1 EO0 CP MR Q0 Q1 Q2 Q3 U7 74LS298 I0d I0c I0b I0a I1d I1c I1b I1a S CP Qd Qc Qb Qa U6 Exemplos de registradores : 4076 e 74LS298 (72298)
  • 17. 33 5.11.1 Registradores de Deslocamento V7 5V V4 5V U5A S J CP K R Q _ Q U4B S J CP K R Q _ Q U4A S J CP K R Q _ Q U3B S J CP K R Q _ Q U3A CP1 CP2 Q1 Q2 V6 Q3 Q2 Q1 Q0 +V V5 5V Registrador de deslocamento de 4 bits A cada pulso de relógio, o Registrador de Deslocamento (Shift Register) irá deslocar a informação armazenada entre os flip-flops, da seguinte maneira: A informação do primeiro flip-flop é passada para o segundo A informação do segundo flip-flop é passada para o terceiro .................... O último flip-flop recebe a informação do penúltimo e perde a que estava nele armazenada 74LS96 S PE CP PstA PstB PstC PstD PstE MR QA QB QC QD QE U8 74LS95 S CP1 CP2 D3 D2 D1 D0 DS Q3 Q2 Q1 Q0 U9 Exemplos de registradores de deslocamento: 74LS95 e 74LS96 Dados digitais podem ser apresentados na forma série ou paralela. Na apresentação série, os bits individuais de uma palavra são conduzidos por um único fio e são apresentados em seqüência temporal, um bit após o outro. Na apresentação paralela todos os bits da palavra são apresentados simultaneamente, usando tantos fios quantos forem necessários. O formato série economiza circuitos. Por outro lado, o formato paralelo economiza tempo. Exemplo: determinado nível lógico leva 1µs para ser reconhecido. O formato série usaria 8µs para transmitir uma palavra de 8 bits, ao passo que o formato paralelo levaria apenas 1µs. Diversas vezes é preciso passar de uma forma de apresentação para outra. O registrador de deslocamento pode ser usado para este fim. 34 6 Sistemas Digitais Aplicados na Computação 6.1 Introdução O Objetivo deste capítulo, é mostrar de que forma os circuitos digitais, combinacionais e seqüenciais, possibilitam a criação de uma infra-estrutura lógica e física para a construção de máquinas de processamento genéricas. Serão abordados dois circuitos necessários ao funcionamento da arquitetura conceitual de Von Neuman, e que estão presentes de alguma forma, nos computadores digitais. O primeiro dos circuitos a ser estudado será o Sistema de Leitura e Escrita Indexada de Dados, onde serão mostrados projetos dos subsistemas necessários para o armazenamento e recuperação de dados em memória principal. O segundo circuito é a Unidade Lógica e Aritmética (ULA ou ALU), parte integrante de qualquer unidade central de processamento (CPU), e responsável pelas operações lógicas e aritméticas necessárias durante a execução das operações pré-programadas de uma CPU. Vale lembrar que esses sistemas mencionados, são ainda enquadrados, em parte ou em todo, na classificação mostrada no capítulo 4: combinacionais e seqüenciais, e portanto, requerem pleno conhecimento dos conceitos já abordados anteriormente. 6.2 Sistema Digital para Armazenamento e Recuperação de Dados Para entendermos de que forma podemos acessar um determinado dado, armazenado em um lugar específico da memória de um computador, temos inicialmente que definir alguns conceitos relativos à organização de computadores, em particular, a estrutura fundamental da memória principal (MP). 6.2.1 Estrutura da MP – Células e Endereços A memória precisa ter uma organização que permita ao computador guardar e recuperar informações quando necessário. Portanto, não basta transferir informações para a memória. É preciso ter como encontrar essa informação mais tarde, quando ela for necessária, e para isso é preciso haver um mecanismo que registre exatamente onde a informação foi armazenada (lembrando nossa analogia com o computador hipotético, imagine encontrar uma informação guardada ao acaso, se nosso escaninho tivesse 1 milhão de compartimentos ...). Em virtude desse problema, precisamos definir dois elementos necessários à estrutura organizacional de qualquer sistema de acesso à memória principal computacional. São eles:
  • 18. 35 Célula é a unidade de armazenamento do computador. A memória principal é organizada em células. Célula é a menor unidade da memória que pode ser endereçada (não é possível buscar uma "parte" da célula) e tem um tamanho fixo (para cada máquina). As memórias são compostas de um determinado número de células ou posições. Cada célula é composta de um determinado número de bits. Todas as células de um dado computador tem o mesmo tamanho, isto é, todas as células daquele computador terão o mesmo número de bits. Endereço é o “localizador” da célula, que permite identificar univocamente cada célula da memória. É utilizado pelo sistema e pelos programas para referenciar posições de memória. As células são numeradas seqüencialmente, uma a uma, de 0 a (N-1), chamado o endereço da célula. Assim, identificamos uma célula específica pelo seu endereço associado. O tamanho em bits das células e dos endereços de uma memória, está altamente acoplada à arquitetura interna do processador em questão. Em geral o tamanho de uma célula poder ser igual aos da palavra (unidade de processamento da CPU) e da unidade de transferência (quantidade de bits que vem e vai da MP à CPU), porém, por razões técnicas e de custo, são freqüentemente diferentes. 6.2.2 Número de bits para representar um endereço A memória principal é constituída por posições memória (células) todas com o mesmo número de bytes (1 byte = 8bits), tendo cada uma delas um endereço (valor numérico). Expressão geral: MP com endereços de 0 a (N-1) N = 2x logo: x = log2 N sendo x = nº de bits para representar um endereço e N o número de endereços. 6.2.3 Capacidade da Memória Principal Num computador a capacidade memória (número de posições de memória) pode variar, mas está normalmente condicionado pelo número de endereços que a CPU pode aceitar. A capacidade da MP em bits é igual ao produto do nº de células pelo total de bits por célula. T = capacidade da memória em bits T = N x M N = nº de endereços ( como vimos anteriormente, N=2x sendo x = nº de bits do endereço) M = nº de bits de cada célula Para encontrar a capacidade em bytes, bastaria encontrar a capacidade em bits e depois dividir por 8 (cada byte contém 8 bits) ou então converter o tamanho da célula para bytes e depois multiplicar pelo número de células. O último endereço na memória é o endereço N-1 ( os endereços começam em zero e vão até N-1). 6.2.4 Projeto Simplificado de Uma Memória Para exemplificar o acesso de leitura/escrita a uma posição de memória, vamos considerar um módulo de memória com: • 4 posições de memória Î 4 endereços de memória • Cada posição com 3 bits. • A cada posição de memória associa-se um endereço (que é um inteiro de 0 a 3). Î Serão necessários 2 bits para representar um endereço (no caso geral, para 2n posições de memória serão necessários n bits – ver item 5.12). Define-se os seguintes dispositivos: 36 Registrador de endereço (MAR – Memory Address Register) – que contém o endereço de uma posição de memória a que se quer gravar. Registrador de conteúdo (MBR – Memory Buffer Register) – que contém um valor a escrever na memória ou que irá conter um valor lido da memória. O registrador MAR tem 2 bits, o registro MBR tem 3 bits e cada uma das posições de memória, à esquerda, também tem 3 bits. Cada bit é um elemento de memória, como o exemplificado anteriormente. Habitualmente, uma memória de um bit é representada por um quadrado que pode conter o valor 0 ou 1, consoante o valor da sua linha de saída O. A esse valor chama-se também o seu conteúdo. Supondo-se que o registro MAR contenha num dos elementos o valor 0 e no outro o valor 1, então a seqüência de bits 01 corresponde em binário ao endereço da posição de memória que se irá manipular. Obs: Em publicações na língua portuguesa é comum o uso dos termos RDM (registro de dados de memória) e REM (registro de endereço de memória) ao invés de MBR e MAR respectivamente. 6.2.4.1 Esquema do Circuito de Escrita Para uma operação de escrita, supomos que existe uma linha W tal que só se o seu valor for 1 é que a alteração da posição de memória é realizada. O registrador de endereço MAR está ligado a um decodificador que ativa uma das suas 2n saídas de acordo com o valor da seqüência de n bits de entrada (no decodificador). Para o caso com n=2, o decodificador ativa uma das suas 4 saídas, cada uma das quais está ligada a uma das posições de memória. Assim colocando-se o endereço de memória no MAR, o sistema identifica a posição de memória que se pretende alterar. O registrador de conteúdo MBR, isto é, cada um dos seus bits, está ligado com cada uma linhas de entrada I de cada posição de memória (isto é, com cada um dos respectivos bits). No esquema, a linha com uma seta na extremidade - que liga o MBR a cada posição de memória - , corresponde na realidade a 3 linhas uma para cada um dos bits das posições de memória. Para uma posição de memória (que tem 3 bits) têm-se Memória Bit-0 MBR (Memory Buffer Register) Bit-1 Bit-2 Bit-3 Decodificador Bit-0 Bit-1 Bit-0 Bit-1 Bit-2 W I3 I2 I1 I0 MAR (Memory Address Register) 1 0 0 0 0 0 1 0 1 0 1 1
  • 19. 37 Quando o valor de W é 1 então, considerando os circuitos dos elementos de memória e o decodificador, facilmente se conclui que cada um dos bits da posição de memória apontada pelo MAR vai ficar com os valores dos respectivos bits do MBR. Neste caso, a posição de memória 3 (Bit-2 ativo) ficaria com a seqüência 101. 6.2.4.2 Esquema do Circuito de Leitura A leitura de um valor da memória é uma tarefa mais simples, uma vez que não se tem de alterar o estado dos elementos de memória. Apenas, é necessário fornecer o endereço da posição de memória, como entrada, e a saída, será a informação contida nessa posição de memória (o seu conteúdo). Na Figura anterior apresenta-se um esquema desse circuito. Além do registrador de endereço (MAR), do registrador de depósito de conteúdo (MBR) e das posições de memória, é necessário um multiplexador. Este multiplexador tem: • Uma linha de entrada para cada bit de cada uma das posições de memória ( 3 x 4 = 12) • Duas linhas de entrada de controle. Memória Bit-0 MBR (Memory Buffer Register) MAR (Memory Address Register) Bit-1 Bit-2 Bit-3 Decodificador Bit-0 Bit-1 Bit-0 Bit-1 Bit-2 W MBR (Memory Buffer Register) 1 0 1 Bit-0 Bit-1 Bit-2 Bit-3 Decodificador Bit-0=1 Bit-1=0 W 1 0 1 1 Memória RAM Multiplexador MAR (Memory Address Register) 38 De acordo com o valor correspondente às linhas de controle, são selecionadas as 3 linhas da posição de memória cujo endereço é esse valor. Assim o conteúdo dessa posição de memória é “lido” e guardado no registro de depósito MBR. Como no esquema anterior, as linha com uma seta na extremidade correspondem a 3 linhas, uma para cada bit das posições de memória. Neste caso, a posição de memória selecionada foi a 3 (supondo numeradas de cima para baixo) e portanto a seqüência 011 foi transferida para o registrador MBR. 6.2.5 Intervalo de N-Formas (N-way interleaving) Uma abordagem interessante e de uso intensivo para aumentar a taxa de transferência de informações da MP sem a necessidade de se aumentar o tamanho do barramento (fios conectores entre as diversas partes da cpu e os elementos externos a ela) é a "n-way interleaving", que consiste em conjunto de memórias de mesmo tamanho com capacidade de operar de forma paralela. Em geral, as memórias utilizadas, dentro do contexto dessa abordagem, conseguem endereçar mais endereços do que sua quantidade nominal (214 →216 ). Quando, na CPU, um microprograma necessita buscar uma nova palavra, ele divide o endereço de 16 bits do nível convencional de máquina em duas partes. A parte mais direita, formada por dois bits especifica qual das memórias será usada: 0, 1, 2 ou 3. A parte mais a esquerda, formada por 14bits, especifica o endereço real da memória em questão. Após o microprograma, ter determinado qual memória usar, ele coloca os 14bits mais a esquerda do endereço envolvido no MAR associado a memória selecionada, e inicia o processo de leitura. Enquanto o microprograma aguarda o termino da leitura, ele pode acionar a leitura de outras memórias em paralelo para buscar outros dados. Note que as informações de endereços consecutivos k, k+1, k+2 e k+3, sempre estarão em memórias diferentes, e como resultado, ate 4 endereços (ou instruções) podem ser buscadas em paralelo. Note que este método independe do tamanho do MBR (no exemplo 16 bits). AND AND Bit-0 do endereço-3 Bit-0 do endereço-1 Bit-0 do endereço-2 1 Para o bit-0 do MBR OR AND AND AND Bit-0 do MAR= Bit-1 do MAR= AND AND Bit-0 do endereço-0 AND Decodificador Multiplexador 1 0 0 0 0 0 1 0 1 0 1 1 1 1
  • 20. 39 Memória 0 (00) 2 Memória 1 (01) 2 Memória 2 (10) 2 Memória 3 (11)2 0 Palavra 0 0 Palavra 1 0 Palavra 2 0 Palavra 3 1 Palavra 4 1 Palavra 5 1 Palavra 6 1 Palavra 7 2 Palavra 8 2 Palavra 9 2 Palavra 10 2 Palavra 11 16382 Palavra 65528 16382 Palavra 65529 16382 Palavra 65530 16382 Palavra 65531 16383 Palavra 65532 16383 Palavra 65533 16383 Palavra 65534 16383 Palavra 65535 14 16 14 16 14 16 14 16 MAR MBR MAR MBR MAR MBR MAR MBR Endereço de 14-bits 16-bit address Quatro memórias distintas de 214 palavras cada podem ser usadas para implementar um único espaço de endereçamento de 216 palavras Observação : Define-se como barramento um conjunto de fios em paralelo, realizando uma conexão elétrica cuja representando em cada fio equivale a um bit. Em geral, são usados para conectar registradores entre si. Dois registradores de 16- bits serão conectados entre si por uma barramento de 16 fios. A largura de um barramento deste tipo é dito como de 16-bits, portanto, a arquitetura de um processador específico que determina o tamanho das palavras e dos registradores, também é determinativo quanto ao tamanho do barramento. Campo de 2-bits seleciona uma das quatro memórias : 0,1,2 ou 3 40 6.3 ULA (Unidade Lógica e Aritmética) A ULA ou ALU, pode ser vista como o coração de um processador por ser ela a responsável em realizar todas as operações lógicas e aritméticas que constantemente ocorrem em uma maquina de von newmann. A ULA é um circuito combinacional capaz de realizar operações elementares, que em conjunto, formam operações complexas: soma, subtração, incremento, and, or, xor, not e etc. Uma ULA típica possui dois barramentos de entrada de dados (X) e (Y), e um barramento de saída para os resultados (S). Alem dos barramentos de e/s, uma ULA também possui um barramento de controle, através do qual determina-se a operação a ser realizada em um determinado instante, e quais linhas de saída adicionais (flags) serão acionadas para sinalizar a ocorrência de condições especiais(e. g. carry-out, overflow, e etc) Apesar de uma ULA trabalhar com dois operandos, ela também pode executar operações que envolvam apenas um operando (armazenado no acumulador). Por esta razão, o acumulador possui uma lógica adicional além da necessária para torná-lo um registrador de uso geral como o registrador B. O registrador de flags mostra o status referente à última operação executada. Por exemplo, se o resultado da operação for zero, um flag (Z) é setado, indicando tal situação. Outros flags possíveis são : Carry, Paridade, Sinal, overflow, e etc. ULA X Y S Seleção da Operação Barramento para Entrada de Dados Barramento para Saída de Dados Seleção da Operação
  • 21. 41 Operações com Um Operando : Clear, complementação, incremento, decremento, deslocamento à esquerda, deslocamento à direita, carga e saída de dados são exemplos de operações que ocorrme sobre um único operando. Exemplo de Uma Operação de Complemento Operações com Dois Operandos : Soma, Subtração, Comparação, AND, OR e XOR são exemplos de operações que ocorrem sobre dois operandos. Exemplo de Uma Operação de Deslocamento à Direita Exemplo de Uma Operação de Rotação à Esquerda