mÁquinas multinÍveis contemporÂneas de nível de …

32
Arquitetura de Computadores Nível 0: Lógico Digital Rev1 www.portaleletronica.com.br Prof. Ricardo Tadeu Ferracioli 1 MÁQUINAS MULTINÍVEIS CONTEMPORÂNEAS A maioria dos computadores modernos consiste de dois ou mais níveis. Existem máquinas com até seis níveis, conforme mostra a Figura de hierarquia. O nível 0, na parte inferior, é o hardware verdadeiro da máquina. Seus circuitos executam os programas em linguagem de máquina do nível 1. Por razões de precisão, temos que mencionar a existência de outro nível abaixo do nosso nível 0. Esse nível, que não aparece na Figura de hierarquia por entrar no domínio da engenharia elétrica (e, portanto, estar fora do escopo), é chamado de nível de dispositivo. Nele, o projetista vê transistores individuais, que são os primitivos de mais baixo nível para projetistas de computador. Se alguém quiser saber como os transistores funcionam no interior, isso nos levará para o campo da física no estado sólido.

Upload: others

Post on 01-Jul-2022

7 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: MÁQUINAS MULTINÍVEIS CONTEMPORÂNEAS de nível de …

Arquitetura de Computadores

Nível 0: Lógico Digital – Rev1

www.portaleletronica.com.br

Prof. Ricardo Tadeu Ferracioli

1

MÁQUINAS MULTINÍVEIS CONTEMPORÂNEAS

A maioria dos computadores modernos consiste de dois ou mais níveis. Existem

máquinas com até seis níveis, conforme mostra a Figura de hierarquia. O nível

0, na parte inferior, é o hardware verdadeiro da máquina. Seus circuitos

executam os programas em linguagem de máquina do nível 1. Por razões de

precisão, temos que mencionar a existência de outro nível abaixo do nosso nível

0. Esse nível, que não aparece na Figura de hierarquia por entrar no domínio da

engenharia elétrica (e, portanto, estar fora do escopo), é chamado de nível de

dispositivo. Nele, o projetista vê transistores individuais, que são os primitivos

de mais baixo nível para projetistas de computador. Se alguém quiser saber

como os transistores funcionam no interior, isso nos levará para o campo da

física no estado sólido.

Page 2: MÁQUINAS MULTINÍVEIS CONTEMPORÂNEAS de nível de …

Arquitetura de Computadores

Nível 0: Lógico Digital – Rev1

www.portaleletronica.com.br

Prof. Ricardo Tadeu Ferracioli

2

NÍVEL LÓGICO DIGITAL

Na parte inferior da hierarquia encontramos o nível lógico digital, o real hardware

do computador. Examinaremos muitos aspectos da lógica digital, como um

fundamento para o estudo de níveis mais altos em capítulos subsequentes. Esse

assunto está no limiar entre a ciência da computação e a engenharia elétrica,

mas o material é independente, portanto, não há necessidade de experiência

prévia de hardware nem de engenharia para entendê-lo.

Os elementos básicos que fazem parte de todos os computadores digitais são

surpreendentemente simples. Iniciaremos nosso estudo examinando esses

elementos básicos e também a álgebra especial de dois valores (álgebra

booleana) usada para analisá-los. Em seguida, examinaremos alguns circuitos

fundamentais que podem ser construídos usando simples combinações de

portas, entre eles os circuitos que efetuam a aritmética. O tópico que vem depois

desse é o modo como essas portas podem ser combinadas para armazenar

informações, isto é, como as memórias são organizadas. Logo após, chegamos

à questão das CPUs e, em especial, de como é a interface entre CPUs de um

só chip, a memória e os dispositivos periféricos. Mais adiante serão estudados

diversos exemplos da indústria de computadores.

Page 3: MÁQUINAS MULTINÍVEIS CONTEMPORÂNEAS de nível de …

Arquitetura de Computadores

Nível 0: Lógico Digital – Rev1

www.portaleletronica.com.br

Prof. Ricardo Tadeu Ferracioli

3

1. Portas e álgebra booleana

1.1. Portas

1.2. Álgebra booleana

1.3. Execução de funções booleanas

1.4. Equivalência de circuito

2. Circuitos lógicos digitais básicos

2.1. Circuitos integrados

2.2. Circuitos combinatórios

• Multiplexadores

• Decodificadores

• Comparadores

2.3. Circuitos aritméticos

• Deslocadores

• Somadores

• Unidades lógica e aritmética

2.4. Clocks

3. Memória

3.1. Memórias de 1 bit

3.2. Flip-flops

3.3. Registradores

3.4. Organização da memória

3.5. Chips de memória

3.6. RAMs e ROMs

• Chips de memória não volátil

Page 4: MÁQUINAS MULTINÍVEIS CONTEMPORÂNEAS de nível de …

Arquitetura de Computadores

Nível 0: Lógico Digital – Rev1

www.portaleletronica.com.br

Prof. Ricardo Tadeu Ferracioli

4

1. PORTAS E ÁLGEBRA BOOLEANA

Circuitos digitais podem ser construídos com um pequeno número de elementos

primitivos combinando-os de inúmeras maneiras. Nas seções seguintes,

descreveremos tais elementos, mostraremos como eles podem ser combinados

e introduziremos uma poderosa técnica matemática que pode ser usada para

analisar seu comportamento.

1.1. PORTAS

Um circuito digital é aquele em que estão presentes somente dois valores

lógicos. O normal é que um sinal entre 0 e 0,5 volt represente um valor (por

exemplo, 0 binário) e um sinal entre 1 e 1,5 volt represente o outro valor (por

exemplo, 1 binário). Não são permitidas tensões fora dessas duas faixas.

Minúsculos dispositivos eletrônicos, denominados portas (gates), podem calcular

várias funções desses sinais de dois valores. Essas portas formam a base do

hardware sobre a qual todos os computadores digitais são construídos. Os

detalhes do funcionamento interno das portas estão fora do escopo, pois

pertencem ao nível de dispositivo, que está abaixo do nível 0. Não obstante,

agora vamos divagar um pouco e examinar rapidamente a ideia básica, que não

é difícil. No fundo, toda a lógica digital moderna se apoia no fato de que um

transistor pode funcionar como um comutador binário muito rápido. Na Figura

1(a), mostramos um transistor bipolar (representado pelo círculo) inserido em um

circuito simples. Esse transistor tem três conexões com o mundo exterior: o

coletor, a base e o emissor. Quando a voltagem de entrada, Vin, está abaixo de

certo valor crítico, o transistor desliga e age como uma resistência infinita, isso

faz com que a saída do circuito, Vout, assuma um valor próximo a Vcc, uma

voltagem regulada externamente, em geral +1,5 volt para esse tipo de transistor.

Quando Vin excede o valor crítico, o transistor liga e age como um fio, fazendo

Vout ficar conectado com a terra (por convenção, 0 volt). O importante é notar

que, quando Vin é baixa, Vout é alta, e vice-versa. Assim, esse circuito é um

inversor, que converte um 0 lógico em um 1 lógico e um 1 lógico em um 0 lógico.

O resistor (linha serrilhada) é necessário para limitar a quantidade de corrente

Page 5: MÁQUINAS MULTINÍVEIS CONTEMPORÂNEAS de nível de …

Arquitetura de Computadores

Nível 0: Lógico Digital – Rev1

www.portaleletronica.com.br

Prof. Ricardo Tadeu Ferracioli

5

drenada pelo transistor, de modo que ele não queime. O tempo típico exigido

para passar de um estado para outro é tipicamente de um nanossegundo ou

menos. Na Figura 1.1(b), dois transistores estão ligados em série. Se ambas, V1

e V2, forem altas, ambos os transistores conduzirão e Vout cairá. Se qualquer

das entradas for baixa, o transistor correspondente se desligará e a saída será

alta. Em outras palavras, Vout será baixa se, e somente se, ambas, V1 e V2,

forem altas. Na Figura 1.1(c), os dois transistores estão ligados em paralelo em

vez de em série. Nessa configuração, se qualquer das entradas for alta, o

transistor correspondente ligará e conectará a saída com a terra. Se ambas as

entradas forem baixas, a saída permanecerá alta. Esses três circuitos, ou seus

equivalentes, formam as três portas mais simples e são denominadas portas

NOT, NAND e NOR, respectivamente. Portas NOT costumam ser denominadas

inversoras; usaremos os dois termos indiferentemente. Se agora adotarmos a

convenção de que “alta” (Vcc volts) é um 1 lógico e “baixa” (terra) é um 0 lógico,

podemos expressar o valor de saída como uma função dos valores de entrada.

Os símbolos usados para representar essas portas são mostrados nas figuras

1.2(a)-(c) junto com o comportamento funcional de cada circuito. Nessas figuras,

A e B são entradas e X é a saída. Cada linha especifica a saída para uma

combinação diferente das entradas.

Figura 1.1: (a) Inversor de transistor, porta NOT. (b) Porta NAND. (c) Porta NOR.

Page 6: MÁQUINAS MULTINÍVEIS CONTEMPORÂNEAS de nível de …

Arquitetura de Computadores

Nível 0: Lógico Digital – Rev1

www.portaleletronica.com.br

Prof. Ricardo Tadeu Ferracioli

6

Se o sinal de saída da Figura 1.1(b) for alimentado em um circuito inversor,

obtemos outro circuito com o inverso exato da porta NAND, a saber, um cuja

saída é 1 se, e somente se, ambas as entradas forem 1. Esse circuito é

denominado uma porta AND; seu símbolo e descrição funcional são dados na

Figura 1.2(d).

De modo semelhante, a porta NOR pode ser conectada a um inversor para

produzir um circuito cuja saída é 1 se quaisquer das saídas, ou ambas, for um 1,

mas 0 se ambas as entradas forem 0. O símbolo e a descrição funcional desse

circuito, denominado uma porta OR, são dados na Figura 1.2(e). Os pequenos

círculos usados como parte dos símbolos para o inversor, porta NAND e porta

NOR, são denominados bolhas de inversão. Também são usadas em outros

contextos para indicar um sinal invertido.

As cinco portas da Figura 1.2 são os principais elementos de construção do nível

lógico digital. A discussão precedente deve ter deixado claro que as portas

NAND e NOR requerem dois transistores cada, ao passo que as portas AND e

OR requerem três cada. Por essa razão, muitos computadores são baseados em

portas NAD e NOR em vez das portas mais conhecidas, AND e OR. (Na prática,

todas as portas são executadas de modo um pouco diferente, mas as NAND e

NOR ainda são mais simples do que as AND e OR) A propósito, vale a pena

observar que as portas podem perfeitamente ter mais de duas entradas. Em

princípio, uma porta NAD, por exemplo, pode ter, arbitrariamente, muitas

entradas, mas na prática não é comum encontrar mais de oito.

Page 7: MÁQUINAS MULTINÍVEIS CONTEMPORÂNEAS de nível de …

Arquitetura de Computadores

Nível 0: Lógico Digital – Rev1

www.portaleletronica.com.br

Prof. Ricardo Tadeu Ferracioli

7

Embora a questão do modo como são construídas as portas pertença ao nível

do dispositivo, gostaríamos de mencionar as principais famílias de tecnologia de

fabricação porque elas são citadas com muita frequência. As duas tecnologias

principais são bipolar e MOS (Metal Oxide Semiconductor – semicondutor

de óxido metálico).

Os dois principais tipos bipolares são:

• TTL (transistor-transistor Logic – lógica transistor-transistor), que há

muitos anos é o burro de carga da eletrônica digital;

• ECL (Emitter-Coupled Logic – lógica de emissor acoplado), que era usada

quando se requeria uma operação de velocidade muito alta.

Para circuitos de computador, o que predomina agora é a tecnologia MOS.

Portas MOS são mais lentas do que as TTL e ECL, mas exigem bem menos

energia elétrica e ocupam um espaço muito menor, portanto, um grande número

delas pode ser compactado e empacotado. Há muitas variedades de MOS, entre

as quais PMOS, NMOS e CMOS. Embora os modos de construção dos

transistores MOS e dos transistores bipolares sejam diferentes, sua capacidade

de funcionar como comutadores eletrônicos é a mesma. A maioria das CPUs e

memórias modernas usa tecnologia CMOS, que funciona a +1,5 volt. E isso é

tudo o que diremos sobre o nível de dispositivo.

1.2. ÁLGEBRA BOOLENA

Para descrever os circuitos que podem ser construídos combinando portas, é

necessário um novo tipo de álgebra, no qual variáveis e funções podem assumir

somente os valores 0 e 1. Essa álgebra é denominada álgebra booleana, nome

que se deve a seu descobridor, o matemático inglês George Boole (1815–1864).

Page 8: MÁQUINAS MULTINÍVEIS CONTEMPORÂNEAS de nível de …

Arquitetura de Computadores

Nível 0: Lógico Digital – Rev1

www.portaleletronica.com.br

Prof. Ricardo Tadeu Ferracioli

8

Figura 1.2: Símbolos e comportamento funcional das cinco portas básicas.

Em termos estritos, estamos nos referindo a um tipo específico de álgebra

booleana, uma álgebra de comutação, mas o termo “álgebra booleana” é tão

utilizado no lugar de “álgebra de comutação” que não faremos a distinção. Assim

como há funções na álgebra “ordinária” (isto é, a álgebra do colegial), também

há funções na álgebra booleana. Uma função booleana tem uma ou mais

variáveis de entrada e produz um resultado que depende somente dos valores

dessas variáveis. Uma função simples, f, pode ser definida ao se dizer que f(A)

é 1 se A for 0 e f(A) é 0 se A for 1. Essa função é a função NOT da Figura 1.2(a).

Como uma função booleana de n variáveis só tem 2𝑛 combinações possíveis de

valores de entrada, ela pode ser completamente descrita por uma tabela com 2𝑛

linhas, na qual cada linha informa o valor da função para uma combinação

diferente de valores de entrada. Ela é denominada tabela verdade. As tabelas

da Figura 1.2 são todos exemplos de tabelas verdade. Se concordarmos em

sempre listar as linhas de uma tabela verdade em ordem numérica (base 2), isto

é, para duas variáveis na ordem 00, 01, 10 e 11, a função pode ser

completamente descrita pelo número binário de 2𝑛 bits obtido pela leitura vertical

da coluna de resultado da tabela verdade. Assim, NAD é 1110, NOR é 1000,

AND é 0001 e OR é 0111. É óbvio que só existem 16 funções booleanas de duas

variáveis, correspondentes às 16 possíveis sequências de 4 bits resultantes. Por

outro lado, a álgebra ordinária tem um número infinito de funções de duas

variáveis, nenhuma das quais pode ser descrita por meio de uma tabela de

Page 9: MÁQUINAS MULTINÍVEIS CONTEMPORÂNEAS de nível de …

Arquitetura de Computadores

Nível 0: Lógico Digital – Rev1

www.portaleletronica.com.br

Prof. Ricardo Tadeu Ferracioli

9

saídas para todas as entradas possíveis, porque cada variável pode assumir

qualquer valor de um número infinito de valores possíveis.

A Figura 1.3(a) mostra a tabela verdade para uma função booleana de três

variáveis: M = f(A, B, C). Essa função é a de lógica majoritária, isto é, ela é 0 se

a maioria de suas entradas for 0, e 1 se a maioria de suas entradas for 1. Embora

qualquer função booleana possa ser completamente especificada dada sua

tabela verdade, à medida que aumenta o número de variáveis, essa notação fica

cada vez mais trabalhosa. Portanto, costuma-se usar outra notação no lugar

dela.

FIGURA 1.3: (a) Tabela verdade para a função majoritária de três variáveis. (b) Circuito para (a).

Para ver como ocorre essa outra notação, observe que qualquer função

booleana pode ser especificada ao se dizer quais combinações de variáveis de

entrada dão um valor de saída igual a 1. Para a função da Figura 1.3(a), há

quatro combinações de variáveis de entrada que fazem com que M seja 1.

Page 10: MÁQUINAS MULTINÍVEIS CONTEMPORÂNEAS de nível de …

Arquitetura de Computadores

Nível 0: Lógico Digital – Rev1

www.portaleletronica.com.br

Prof. Ricardo Tadeu Ferracioli

10

Por convenção, marcaremos a variável de entrada com uma barra para indicar

que seu valor é invertido. A ausência de uma barra significa que o valor não é

invertido. Além disso, usaremos a multiplicação implícita ou um ponto para

representar a função booleana AND e + para representar a função booleana

OR.

Assim, por exemplo, 𝐴�̅�𝐶 assume o valor 1 somente quando A = 1 e B = 0 e C

= 1. Além disso, 𝐴�̅� + 𝐵𝐶̅ é 1 somente quando (A = 1 e B = 0) ou (B = 1 e C =

0). As quatro linhas da Figura 3(a) que produzem bits 1 na saída são

�̅�𝐵𝐶, 𝐴�̅�𝐶, 𝐴𝐵𝐶̅ 𝑒 𝐴𝐵𝐶. A função, M, é verdadeira (isto é, 1) se qualquer uma

dessas quatro condições for verdadeira; daí, podemos escrever

𝑀 = �̅�𝐵𝐶 + 𝐴�̅�𝐶 + 𝐴𝐵𝐶̅ + 𝐴𝐵𝐶

como um modo compacto de dar a tabela verdade. Assim, uma função de n

variáveis pode ser descrita como se desse uma “soma” de no máximo 2𝑛 termos

de “produtos” de n variáveis. Essa formulação é de especial importância, como

veremos em breve, pois leva diretamente a uma execução da função que usa

portas padronizadas.

É importante ter em mente a distinção entre uma função booleana abstrata e sua

execução por um circuito eletrônico. Uma função booleana consiste em

variáveis, como A, B e C, e operadores booleanos, como AND, OR e NOT.

Ela é descrita por uma tabela verdade ou por uma função booleana como

Page 11: MÁQUINAS MULTINÍVEIS CONTEMPORÂNEAS de nível de …

Arquitetura de Computadores

Nível 0: Lógico Digital – Rev1

www.portaleletronica.com.br

Prof. Ricardo Tadeu Ferracioli

11

𝐹 = 𝐴�̅�𝐶 + 𝐴𝐵𝐶̅

Uma função booleana pode ser executada por um circuito eletrônico (muitas

vezes de vários modos diferentes) usando sinais que representam as variáveis

de entrada e saída e portas como AND, OR e NOT.

1.3. Execução de funções booleanas

Como já mencionamos, a formulação de uma função booleana como uma soma

de até 2𝑛 termos produtos leva a uma possível implementação. Usando a Figura

1.4 como exemplo, podemos ver como essa implementação é efetuada. Na

Figura 1.4(b), as entradas, A, B e C, aparecem na extremidade esquerda, e a

função de saída, M, na extremidade direita. Como são necessários

complementos (inversos) das variáveis de entrada, eles são gerados tomando

as entradas e passando-as pelos inversores rotulados 1, 2 e 3. Para evitar

atravancar a figura, desenhamos seis linhas verticais, três das quais conectadas

às variáveis de entrada e três aos complementos dessas variáveis.

Tais linhas oferecem uma fonte conveniente para as entradas das portas

subsequentes. Por exemplo, as portas 5, 6 e 7 usam A como uma entrada. Em

um circuito real, essas portas provavelmente estariam ligadas direto a A sem

usar nenhum fio “vertical” intermediário.

O circuito contém quatro portas AND, uma para cada termo da equação para M

(isto é, uma para cada linha da tabela verdade que tenha um bit 1 na coluna de

resultado). Cada porta AND calcula uma linha da tabela verdade, como indicado.

Por fim, todos os termos produtos alimentam a porta lógica OR para obter o

resultado final.

O circuito da Figura 1.4(b) usa uma convenção que utilizaremos repetidas vezes

neste livro: quando duas linhas se cruzam, não há nenhuma ligação implícita a

menos que haja um ponto negro bem visível na intersecção. Por exemplo, a

saída da porta 3 cruza todas as seis linhas verticais, mas está ligada apenas a

C. É bom lembrar que alguns autores usam outras convenções.

Page 12: MÁQUINAS MULTINÍVEIS CONTEMPORÂNEAS de nível de …

Arquitetura de Computadores

Nível 0: Lógico Digital – Rev1

www.portaleletronica.com.br

Prof. Ricardo Tadeu Ferracioli

12

Pelo exemplo da Figura 1.4 deve ficar claro como colocar em prática um circuito

para qualquer função booleana:

1. Escreva a tabela verdade para a função.

2. Providencie inversores para gerar o complemento de cada entrada.

3. Desenhe uma porta AND para cada termo que tenha um 1 na coluna de

resultado.

4. Ligue as portas AND às entradas adequadas.

5. Alimente a saída de todas as portas AND a uma porta OR.

Embora tenhamos mostrado como qualquer função booleana pode ser

executada usando portas NOT, AND e OR, muitas vezes é conveniente realizar

circuitos usando só um tipo de porta. Felizmente, converter circuitos gerados

pelo algoritmo precedente à forma NAND pura ou NOR pura é uma operação

direta. Para fazer essa conversão, basta que tenhamos um modo de implementar

NOT, AND e OR usando um único tipo de porta. A linha superior da Figura 1.4

mostra como todas essas três podem ser implementadas usando apenas portas

NAND; a fileira de baixo mostra como isso pode ser feito usando apenas portas

NOR. (Essas operações são diretas, mas também há outras maneiras.)

Um modo de implementar uma função booleana usando somente portas NAND

ou somente portas NOR é primeiro seguir o procedimento dado anteriormente

para construí-la com NOT, AND e OR. Em seguida, substituir as portas de

múltiplas entradas por circuitos equivalentes usando portas de duas entradas.

Por exemplo, A + B + C + D pode ser computada como (A + B) + (C + D),

empregando três portas OR de duas entradas. Por fim, as portas NOT, AND e

OR são substituídas pelos circuitos da Figura 1.4.

Page 13: MÁQUINAS MULTINÍVEIS CONTEMPORÂNEAS de nível de …

Arquitetura de Computadores

Nível 0: Lógico Digital – Rev1

www.portaleletronica.com.br

Prof. Ricardo Tadeu Ferracioli

13

Figura 1.4 Construção de portas (a) NOT, (b) AND e (c) OR usando somente portas NAND ou

somente portas NOR.

Embora esse procedimento não resulte em circuitos ótimos, no sentido do

número mínimo de portas, ele mostra que sempre há uma solução viável. Ambas

as portas, NAND e NOR, são denominadas completas porque qualquer função

booleana pode ser calculada usando quaisquer das duas. Nenhuma outra porta

tem essa propriedade, o que é outra razão para elas serem preferidas como

blocos de construção de circuitos.

1.4. 3.1.4 Equivalência de circuito

Projetistas de circuitos muitas vezes tentam reduzir o número de portas em seus

produtos para reduzir a área da placa de circuito interno necessária para

executá-las, diminuir o consumo de potência e aumentar a velocidade. Para

reduzir a complexidade de um circuito, o projetista tem de encontrar outro circuito

que calcule a mesma função que o original, mas efetue essa operação com um

número menor de portas (ou talvez com portas mais simples, por exemplo, com

Page 14: MÁQUINAS MULTINÍVEIS CONTEMPORÂNEAS de nível de …

Arquitetura de Computadores

Nível 0: Lógico Digital – Rev1

www.portaleletronica.com.br

Prof. Ricardo Tadeu Ferracioli

14

duas em vez de com quatro entradas). A álgebra booleana pode ser uma

ferramenta valiosa na busca de circuitos equivalentes.

Como exemplo de como a álgebra booleana pode ser usada, considere o circuito

e a tabela verdade para AB + AC mostrados na Figura 1.5(a). Embora ainda não

as tenhamos discutido, muitas das regras da álgebra comum também são válidas

para a booleana. Em particular, a expressão AB + AC pode ser fatorada para

A(B + C) usando a lei distributiva. A Figura 1.5(b) mostra o circuito e a tabela

verdade para A(B + C). Como duas funções são equivalentes se, e somente se,

elas tiverem a mesma saída para todas as entradas possíveis, é fácil ver pelas

tabelas verdade da Figura 1.5 que A(B + C) é equivalente a AB + AC. Apesar

dessa equivalência, o circuito da Figura 1.5(b) é claramente melhor do que o da

Figura 1.5(a), pois contém menos portas.

Figura 1.5: Duas funções equivalentes. (a) AB + AC. (b) A(B + C).

Page 15: MÁQUINAS MULTINÍVEIS CONTEMPORÂNEAS de nível de …

Arquitetura de Computadores

Nível 0: Lógico Digital – Rev1

www.portaleletronica.com.br

Prof. Ricardo Tadeu Ferracioli

15

2. CIRCUITOS LÓGICO DIGITAIS BÁSICOS

Na prática, poucos circuitos são construídos porta por porta, embora tenha

havido uma época em que isso era comum. Hoje, os blocos de construção mais

comuns são módulos que contêm várias portas. Examinaremos esses blocos de

construção mais de perto e veremos como eles podem ser construídos com base

em portas individuais.

2.1. CIRCUITOS INTEGRADOS

Portas não são fabricadas nem vendidas individualmente, mas em unidades

denominadas circuitos integrados, muitas vezes denominados ICs ou chips. Um

IC é um pedaço quadrado de silício de tamanho variado, dependendo de quantas

portas são necessárias para executar os componentes do chip. Substratos

pequenos medirão cerca de 2 × 2 mm, enquanto os maiores podem ter até 18 ×

18 mm. ICs costumam ser montados em pacotes retangulares de plástico ou

cerâmica, que podem ser muito maiores que os substratos que eles abrigam, se

forem necessários muitos pinos para conectar o chip ao mundo exterior. Cada

pino se conecta com a entrada ou saída de alguma porta no chip ou à fonte

de energia, ou ao terra.

A Figura 4.1 mostra uma série de pacotes de IC comuns, usados para os chips

de hoje. Chips menores, como os usados para microcontroladores domésticos

ou chips de RAM, usarão pacotes duplos em linha (DIPs – Dual Inline Packages).

Um DIP é um pacote com duas fileiras de pinos que se encaixam em um soquete

correspondente na placa-mãe. Os pacotes mais comuns têm 14, 16, 18, 20, 22,

24, 28, 40, 64 ou 68 pinos. Para chips grandes costumam ser usados pacotes

quadrados com pinos nos quatro lados ou na parte de baixo. Dois pacotes

comuns para chips maiores são Pin Grid Arrays, ou PGAs, e Land Grid Arrays,

ou LGAs. PGAs possuem pinos na parte inferior do pacote, que se encaixam em

um soquete correspondente na placa-mãe. Soquetes PGA normalmente utilizam

um mecanismo com força de inserção nula, onde uma alavanca aplica pressão

lateral sobre todos os pinos do PGA, mantendo-o firmemente no soquete PGA.

LGAs, por outro lado, possuem pequenas plataformas planas na parte inferior do

chip, e um soquete LGA terá uma capa que se encaixa sobre o LGA e aplica

Page 16: MÁQUINAS MULTINÍVEIS CONTEMPORÂNEAS de nível de …

Arquitetura de Computadores

Nível 0: Lógico Digital – Rev1

www.portaleletronica.com.br

Prof. Ricardo Tadeu Ferracioli

16

uma força para baixo no chip, garantindo que todas as plataformas do LGA

façam contato com as plataformas do soquete LGA.

FIGURA 4.1: Tipos comuns de pacotes de circuito integrado, incluindo um pacote dual-in-line,

ou DIP (a), PGA (b) e LGA (c).

Como muitos pacotes de IC têm forma simétrica, descobrir a orientação correta

é um problema constante com a instalação de IC.

• DIPs normalmente têm um entalhe em uma ponta, que combina com uma

marca corresponde no soquete DIP.

• PGAs, em geral, possuem um pino faltando, de modo que, se você tentar

inserir o PGA no soquete incorretamente, o PGA não se encaixará.

• Como os LGAs não possuem pinos, a instalação correta é imposta

colocando-se um entalhe em um ou dois lados do LGA, que corresponde

a um entalhe no soquete LGA. O LGA não entrará no soquete a menos

que os dois entalhes combinem.

Para todos os efeitos, todas as portas são ideais no sentido de que a saída

aparece logo que a entrada é aplicada. Na realidade, os chips têm um atraso de

porta finito que inclui o tempo de propagação de sinal pelo chip e o tempo de

comutação. Atrasos típicos são de centésimos de picossegundos a alguns

nanossegundos.

A tecnologia moderna vigente permite colocar mais de 1 bilhão de transistores

em um chip. Como qualquer circuito pode ser construído com base em portas

Page 17: MÁQUINAS MULTINÍVEIS CONTEMPORÂNEAS de nível de …

Arquitetura de Computadores

Nível 0: Lógico Digital – Rev1

www.portaleletronica.com.br

Prof. Ricardo Tadeu Ferracioli

17

NAND, você bem poderia imaginar que um fabricante poderia produzir um chip

muito geral que contivesse 500 milhões de portas NAND. Infelizmente, um chip

como esse necessitaria de 1.500.000.000 pinos. Como o espaço-padrão entre

pinos é 1 milímetro, um chip LGA teria 38 metros de comprimento para acomodar

todos esses pinos, o que talvez tivesse um efeito negativo sobre as vendas. É

claro que a única maneira de tirar proveito da tecnologia é projetar circuitos com

uma alta relação porta/pino.

2.2. CIRCUITOS COMBINATÓRIOS

Muitas aplicações de lógica digital requerem um circuito com múltiplas entradas

e múltiplas saídas, no qual as saídas são determinadas exclusivamente pelas

entradas em questão. Esses circuitos são denominados circuitos combinatórios.

Nem todos os circuitos têm essa propriedade. Por exemplo, um circuito que

contenha elementos de memória pode perfeitamente gerar saídas que

dependem de valores armazenados, bem como de variáveis de entrada. Um

circuito que esteja executando uma tabela verdade como a da Figura 3(a) é um

exemplo típico de um circuito combinatório. Nesta seção, examinaremos alguns

circuitos combinatórios de uso frequente.

• Multiplexadores

No nível lógico, um multiplexador é um circuito com 2𝑛 entradas de dados, uma

saída de dados e 𝑛 entradas de controle que selecionam uma das entradas de

dados. Essa entrada selecionada é dirigida (isto é, roteada) até a saída. A Figura

4.1 é um diagrama esquemático de um multiplexador de oito entradas. As três

linhas de controle, A, B e C, codificam um número de 3 bits que especifica qual

das oito linhas de entrada é direcionada até a porta OR e dali até a saída. Não

importa qual valor esteja nas linhas de controle, sete das portas AND sempre

produzirão saída 0; a outra pode produzir ou um 0 ou um 1, dependendo do valor

da linha de entrada selecionada. Cada porta AND é habilitada por uma

combinação diferente das entradas de controle. O circuito do multiplexador é

mostrado na Figura 4.1.

Page 18: MÁQUINAS MULTINÍVEIS CONTEMPORÂNEAS de nível de …

Arquitetura de Computadores

Nível 0: Lógico Digital – Rev1

www.portaleletronica.com.br

Prof. Ricardo Tadeu Ferracioli

18

FIGURA 4.1: Circuito multiplexador de oito entradas.

Usando o multiplexador, podemos executar a função majoritária da Figura 3(a),

como mostrado na Figura 4.2(b). Para cada combinação de A, B e C, uma das

linhas de dados é selecionada. Cada entrada é ligada ou a Vcc (1 lógico) ou ao

terra (0 lógico). O algoritmo para ligar as entradas é simples: a entrada 𝐷𝑖 é a

que tem o mesmo valor da linha 𝑖 da tabela verdade. Na Figura 3(a), as linhas 0,

1, 2 e 4 são 0, portanto, as entradas correspondentes estão aterradas; as linhas

restantes são 1, portanto, estão ligadas a 1 lógico. Dessa maneira, qualquer

tabela verdade de três variáveis pode ser executada usando o chip da Figura

4.1(a).

Page 19: MÁQUINAS MULTINÍVEIS CONTEMPORÂNEAS de nível de …

Arquitetura de Computadores

Nível 0: Lógico Digital – Rev1

www.portaleletronica.com.br

Prof. Ricardo Tadeu Ferracioli

19

FIGURA 4.2: (a) Multiplexador com oito entradas. (b) O mesmo multiplexador ligado para calcular

a função majoritária.

Acabamos de ver como um chip multiplexador pode ser usado para selecionar

uma das diversas entradas e como ele pode implementar uma tabela verdade.

Outra de suas muitas aplicações é como um conversor de dados paralelo para

serial. Colocando 8 bits de dados nas linhas de entrada e então escalonando as

linhas em sequência de 000 a 111 (binário), os 8 bits são colocados em série na

linha de saída. Uma utilização típica da conversão paralela para serial é um

teclado, onde cada acionamento de uma tecla define implicitamente um número

de 7 ou 8 bits que deve ser enviado por um enlace serial, como USB.

O inverso de um multiplexador é um demultiplexador, que dirige sua única

entrada até uma das 2𝑛 saídas, dependendo dos valores das 𝑛 linhas de

controle. Se o valor binário das linhas de controle for k, é selecionada a saída k.

• Decodificadores

Como um segundo exemplo, agora vamos examinar um circuito que toma um

número de 𝑛 bits como entrada e o usa para selecionar (isto é, definir em 1)

exatamente uma das 2𝑛 linhas de saída. Tal circuito, ilustrado para 𝑛 = 3 na

Figura 4.3, é denominado decodificador. Para ver como um decodificador pode

ser útil, imagine uma pequena memória que consiste em oito chips, cada um

Page 20: MÁQUINAS MULTINÍVEIS CONTEMPORÂNEAS de nível de …

Arquitetura de Computadores

Nível 0: Lógico Digital – Rev1

www.portaleletronica.com.br

Prof. Ricardo Tadeu Ferracioli

20

contendo 256 MB. O chip 0 tem endereços de 0 a 256 MB, o chip 1 tem

endereços de 256 MB a 512 MB e assim por diante. Quando um endereço é

apresentado à memória, os 3 bits de ordem alta são usados para selecionar um

dos oito chips. Usando o circuito da Figura 4.3, esses 3 bits são as três entradas,

A, B e C.

Dependendo das entradas, exatamente uma das oito linhas de saída, 𝐷0, ..., 𝐷7,

é 1; o resto é 0. Cada linha de saída habilita um dos oito chips de memória. Como

só uma linha de saída é colocada em 1, apenas um chip é habilitado.

FIGURA 4.3: Circuito decodificador 3 para 8.

A operação do circuito da Figura 4.3 é direta. Cada porta AND tem três entradas,

das quais a primeira é 𝐴 ou �̅�, a segunda é 𝐵 ou �̅� e a terceira é 𝐶 ou 𝐶̅. Cada

porta é habilitada por uma combinação diferente de entradas:

𝐷0 por �̅� �̅� 𝐶̅,

𝐷1 por �̅� �̅� 𝐶, e assim por diante.

Page 21: MÁQUINAS MULTINÍVEIS CONTEMPORÂNEAS de nível de …

Arquitetura de Computadores

Nível 0: Lógico Digital – Rev1

www.portaleletronica.com.br

Prof. Ricardo Tadeu Ferracioli

21

• Comparadores

Outro circuito útil é o comparador, que compara duas palavras de entrada. O

comparador simples da Figura 4.4 toma duas entradas, A e B, cada uma de 4

bits de comprimento e produz um 1 se elas forem iguais e um 0 se elas não o

forem. O circuito é baseado na porta XOR (EXCLUSIVE OR), que produz um 0

se suas entradas forem iguais e um 1 se elas forem diferentes. Se as duas

palavras de entrada forem iguais, todas as quatro portas xor devem produzir 0.

Então, pode-se efetuar uma operação OR nesses quatro sinais; se o resultado

for 0, as palavras de entrada são iguais; caso contrário, não. Em nosso exemplo,

usamos uma porta NOR como o estágio final para reverter o sentido do teste:

𝐴 𝐵 𝐴 𝑋𝑂𝑅 𝐵

0 0 0

0 1 1

1 0 1

1 1 0

1 significa igual, 0 significa diferente.

𝐴 ⟹ 𝐴0, 𝐴1, 𝐴2, 𝐴3

𝐴3 𝐴2 𝐴1 𝐴0

0 0 0 0

0 0 0 1

0 0 1 0

0 0 1 1

0 1 0 0

𝐵 ⟹ 𝐵0, 𝐵1, 𝐵2, 𝐵3

𝐵3 𝐵2 𝐵1 𝐵0

0 0 0 0

0 0 0 1

0 0 1 0

0 0 1 1

0 1 0 0

Figura 4.4: Comparador simples de 4 bits.

Page 22: MÁQUINAS MULTINÍVEIS CONTEMPORÂNEAS de nível de …

Arquitetura de Computadores

Nível 0: Lógico Digital – Rev1

www.portaleletronica.com.br

Prof. Ricardo Tadeu Ferracioli

22

2.3. CIRCUITOS ARITMÉTICOS

Começaremos com um simples deslocador de 8 bits e em seguida veremos

como são construídos os somadores e, por fim, estudaremos as unidades de

lógica e aritmética, que desempenham um papel fundamental em qualquer

computador.

• Deslocadores

Nosso primeiro circuito aritmético é um deslocador de oito entradas e oito saídas

(veja a Figura 2.3.1). Oito bits de entrada são apresentados nas linhas D0, ...,

D7. A saída, que é apenas a entrada deslocada de 1 bit, está nas linhas S0, ...,

S7. A linha de controle, C, determina a direção do deslocamento, 0 para a

esquerda e 1 para a direita. Quando o deslocamento for para a esquerda, um 0

é inserido no bit 7. De modo semelhante, quando o deslocamento for para a

direita, um 1 é inserido no bit 0.

FIGURA 2.3.1: Deslocador esquerda/direita de 1 bit.

Para ver como o circuito funciona, observe os pares de portas AND para todos

os bits, exceto as portas na extremidade. Quando C = 1, o membro da direita de

cada par é ligado, passando o bit de entrada correspondente para a saída. Como

a porta AND da direita está ligada à entrada da porta OR à sua direita, é

executado um deslocamento para a direita. Quando C = 0, o membro da

esquerda do par da porta AND é ligado, o que provoca um deslocamento para a

esquerda.

Page 23: MÁQUINAS MULTINÍVEIS CONTEMPORÂNEAS de nível de …

Arquitetura de Computadores

Nível 0: Lógico Digital – Rev1

www.portaleletronica.com.br

Prof. Ricardo Tadeu Ferracioli

23

• Somadores

Um computador que não possa somar números inteiros é quase inimaginável.

Por consequência, um circuito de hardware para efetuar adição é uma parte

essencial de toda CPU. A tabela verdade para adição de inteiros de 1 bit é

mostrada na Figura 2.3.2(a). Há duas saídas presentes: a soma das entradas, A

e B, e o transporte (vai-um) para a posição seguinte (à esquerda). Um circuito

para calcular o bit de soma e o de transporte é ilustrado na Figura 2.3.2 (b). Esse

circuito simples é conhecido como um meio-somador.

Page 24: MÁQUINAS MULTINÍVEIS CONTEMPORÂNEAS de nível de …

Arquitetura de Computadores

Nível 0: Lógico Digital – Rev1

www.portaleletronica.com.br

Prof. Ricardo Tadeu Ferracioli

24

Figura 2.3.2: (a) Tabela verdade para adição de 1 bit. (b) Circuito para um meio-somador.

Embora um meio-somador seja adequado para somar os bits de ordem baixa de

duas palavras de entrada de múltiplos bits, ele não servirá para uma posição de

bit no meio da palavra porque não trata o transporte de bit da posição à direita

(vem-um). Em seu lugar, precisamos do somador completo da Figura 2.3.2. Pela

inspeção do circuito, deve ficar claro que um somador completo é composto de

dois meios-somadores. A linha de saída Soma é 1 se um número ímpar A, B e o

vem-um (carry in) forem 1. O vai-um (carry out) é 1 se A e B forem ambos 1

(entrada esquerda para a porta or) ou se exatamente um deles for 1 e o bit de

vem-um (carry in) também é 1. Juntos, os dois meios-somadores geram a soma

e também os bits de transporte.

Para construir um somador para palavras de 16 bits, por exemplo, basta repetir

o circuito da Figura 2.3.2(b) 16 vezes. O vai-um de um bit é usado como vem-

um para seu vizinho da esquerda. O vem-um do bit da extrema direita está ligado

a 0. Esse tipo de somador é denominado somador de transporte encadeado

porque, na pior das hipóteses, somando 1 a 111...111 (binário), a adição não

pode ser concluída até que o vai-um tenha percorrido todo o caminho do bit da

extrema direita até o da extrema esquerda. Também existem somadores que

não têm esse atraso e, portanto, são mais rápidos – em geral, são os preferidos.

Page 25: MÁQUINAS MULTINÍVEIS CONTEMPORÂNEAS de nível de …

Arquitetura de Computadores

Nível 0: Lógico Digital – Rev1

www.portaleletronica.com.br

Prof. Ricardo Tadeu Ferracioli

25

Como exemplo simples de um somador mais rápido, considere subdividir um

somador de 32 bits em uma metade inferior e uma metade superior de 16 bits

cada. Quando a adição começa, o somador superior ainda não pode trabalhar

porque não sabe qual é o vem-um por 16 tempos de adição.

Figura 2.3.2: Tabela verdade para somador completo. (b) Circuito para um somador completo.

Contudo, considere essa modificação no circuito. Em vez de uma única metade

superior, vamos dar ao somador duas metades superiores em paralelo

duplicando o hardware da metade superior. Desse modo, agora o circuito

consiste em três somadores de 16 bits: uma metade inferior e duas metades

superiores, U0 e U1 que funcionam em paralelo. Um 0 é alimentado em U0 como

vai-um; um 1 é alimentado em U1 como vai-um. Agora, ambos podem iniciar ao

mesmo tempo do que a metade inferior, mas somente um estará correto. Após

16 tempos de adição de bits, já se saberá qual é o vem-um que deve ir para a

metade superior, portanto, agora já se pode selecionar a metade superior correta

com base em duas respostas disponíveis. Esse estratagema reduz o tempo de

adição por um fator de dois. Um somador como esse é denominado somador de

seleção de transporte. Então, o estratagema pode ser repetido para construir

cada somador de 16 bits com base em somadores de 8 bits repetidos e assim

por diante.

Page 26: MÁQUINAS MULTINÍVEIS CONTEMPORÂNEAS de nível de …

Arquitetura de Computadores

Nível 0: Lógico Digital – Rev1

www.portaleletronica.com.br

Prof. Ricardo Tadeu Ferracioli

26

• Unidades lógica e aritmética

Grande parte dos computadores contém um único circuito para efetuar AND, OR

e soma de duas palavras de máquina. No caso típico, tal circuito para palavras

de n bits é composto de n circuitos idênticos para as posições individuais de bits.

A Figura Figura 2.3.3 é um exemplo simples de um circuito desses, denominado

unidade lógica e aritmética (ULA) (Arithmetic Logic Unit – ALU). Ela pode calcular

qualquer uma das quatro funções:

𝐴 and 𝐵, 𝐴 or 𝐵, �̅� ou 𝐴 + 𝐵,

dependendo de as linhas de entrada de seleção de função 𝐹0 e 𝐹1 conterem 00,

01, 10 ou 11 (binário). Note que, aqui, 𝐴 + 𝐵 significa a soma aritmética de 𝐴 e

𝐵, e não a operação booleana OR.

O canto inferior esquerdo de nossa ULA contém um decodificador de 2 bits

para gerar sinais de enable (habilitação) para as quatro operações, com

base nos sinais de controle 𝐹0 e 𝐹1. Dependendo dos valores de 𝐹0 e 𝐹1,

exatamente uma das quatro linhas de habilitação é selecionada. Ativar essa linha

permite que a saída para a função selecionada passe por ela até a porta OR

final, para saída.

O canto superior esquerdo contém a lógica para calcular 𝑨 AND 𝑩, 𝑨 OR, 𝑩

e �̅�, mas no máximo um desses resultados é passado para a porta or final,

dependendo das linhas de habilitação que saem do decodificador. Como

exatamente uma das saídas do decodificador será 1, exatamente uma das

quatro portas AND que comandam a porta OR será habilitada; as outras três

resultarão em 0, independente de 𝐴 e 𝐵.

Page 27: MÁQUINAS MULTINÍVEIS CONTEMPORÂNEAS de nível de …

Arquitetura de Computadores

Nível 0: Lógico Digital – Rev1

www.portaleletronica.com.br

Prof. Ricardo Tadeu Ferracioli

27

Figura 2.3.3: ULA de 1 bit.

Além de poder usar A e B como entradas para operações lógicas ou aritméticas,

também é possível forçar quaisquer delas para 0 negando ENA ou ENB,

respectivamente. Também é possível obter �̅� ativando INVA. Em condições

normais, ENA e ENB são ambas 1 para habilitar ambas as entradas e INVA é 0.

Nesse caso, A e B são apenas alimentados na unidade lógica, sem modificação.

O canto direito inferior da ULA contém um somador completo para calcular

a soma de A e B, incluindo manipulação de transportes (vai-um e vem-um),

porque é provável que, em seu devido tempo, vários desses circuitos serão

ligados juntos para efetuar operações de palavra inteira. Na verdade, existem

circuitos como o da Figura 2.3.3 que são conhecidos como segmentos de bits

(bit slices). Eles permitem que o projetista do computador monte uma ULA da

Page 28: MÁQUINAS MULTINÍVEIS CONTEMPORÂNEAS de nível de …

Arquitetura de Computadores

Nível 0: Lógico Digital – Rev1

www.portaleletronica.com.br

Prof. Ricardo Tadeu Ferracioli

28

largura que quiser. A Figura 2.3.4 mostra uma ULA de 8 bits montada com 8

segmentos (slices) de ULA de 1 bit. O sinal inc só é útil para operações de

adição. Quando presente, aumenta o resultado (isto é, soma 1 a ele),

possibilitando o cálculo de somas como A + 1 e A + B + 1.

Figura 2.3.4: Oito segmentos (slices) de ULA de 1 bit conectados para formar uma ULA de 8

bits. Os sinais de habilitação e inversão não são mostrados por simplicidade.

2.4. Clocks

Em muitos circuitos digitais, a ordem em que os eventos ocorrem é crítica. Às

vezes um evento deve preceder outro, às vezes dois eventos devem ocorrer

simultaneamente. Para permitir que os projetistas consigam as relações de

temporização requeridas, muitos circuitos digitais usam clocks para prover

sincronização. Nesse contexto, um clock é um circuito que emite uma série de

pulsos com uma largura de pulso precisa e intervalos precisos entre pulsos

consecutivos. O intervalo de tempo entre as arestas correspondentes de dois

pulsos consecutivos é denominado tempo de ciclo de clock. Em geral, as

frequências de pulso estão entre 100 MHz e 4 GHz, correspondendo a ciclos de

clock de 10 nanossegundos a 250 picossegundos. Para conseguir alta precisão,

a frequência de clock normalmente é controlada por um oscilador de cristal.

Muitos eventos podem ocorrer dentro de um computador durante um único ciclo

de clock. Se eles devem ocorrer em uma ordem específica, o ciclo de clock deve

ser dividido em subciclos. Uma maneira comum de prover resolução superior à

do clock básico é aproveitar a linha de clock primária e inserir um circuito com

um atraso conhecido, gerando assim um sinal de clock secundário deslocado em

certa fase em relação ao primeiro, conforme mostra a Figura 2.4.1 (a). O

Page 29: MÁQUINAS MULTINÍVEIS CONTEMPORÂNEAS de nível de …

Arquitetura de Computadores

Nível 0: Lógico Digital – Rev1

www.portaleletronica.com.br

Prof. Ricardo Tadeu Ferracioli

29

diagrama de temporização da Figura 2.4.1(b) dá quatro referências de tempo

para eventos discretos:

1. Fase ascendente de C1.

2. Fase descendente de C1.

3. Fase ascendente de C2.

4. Fase descendente de C2.

Vinculando diferentes eventos às várias fases, pode-se conseguir a sequência

requerida. Se forem necessárias mais do que quatro referências de tempo dentro

de um ciclo de clock, podem-se puxar mais linhas da linha primária, com

diferentes atrasos, se for preciso.

Em alguns circuitos, estamos interessados em intervalos de tempo em vez de

instantes discretos de tempo. Por exemplo, pode-se permitir que algum evento

aconteça toda vez que C1 estiver alto, em vez de exatamente na fase

ascendente. Outro evento só poderá acontecer quando C2 estiver alto. Se forem

necessários mais de dois intervalos diferentes, podem ser instaladas mais linhas

de clock ou pode-se fazer com que os estados altos dos dois clocks se

sobreponham parcialmente no tempo. No último caso, podem-se distinguir

quatro intervalos distintos: 𝐶1̅̅̅̅ AND 𝐶2̅̅̅̅ , 𝐶1̅̅̅̅ AND 𝐶2, C1 AND 𝐶2̅̅̅̅ e C1 AND 𝐶2.

A propósito, clocks são simétricos, com o tempo gasto no estado alto igual ao

tempo gasto no estado baixo, como mostra a Figura 3.20(b). Para gerar um trem

de pulsos assimétrico, o clock básico é deslocado usando um circuito de atraso

e efetuando uma operação AND com o sinal original, como mostra a Figura 2.4.1

abaixo como C.

Figura 2.4.1: (a) Um clock. (b) Diagrama de temporização para o clock. (c) Geração de um clock

assimétrico.

Page 30: MÁQUINAS MULTINÍVEIS CONTEMPORÂNEAS de nível de …

Arquitetura de Computadores

Nível 0: Lógico Digital – Rev1

www.portaleletronica.com.br

Prof. Ricardo Tadeu Ferracioli

30

3. MEMÓRIAS

3.1. Memórias de 1 bit

Para criar uma memória de 1 bit (“latch”), precisamos de um circuito que “se

lembre”, de algum modo, de valores de entrada anteriores. Tal circuito pode ser

construído com base em duas portas NOR, como ilustrado na Figura 3.1(a).

Circuitos análogos podem ser construídos com portas NAND, porém, não vamos

mais mencioná-los porque são conceitualmente idênticos às versões nor.

O circuito da Figura 3.1(a) é denominado latch SR. Ele tem duas entradas, S,

para ativar (setting) o latch, e R, para restaurá-lo (resetting), isto é, liberá-lo. O

circuito também tem duas saídas, 𝑄 e �̅�, que são complementares, como

veremos em breve. Ao contrário de um circuito combinacional, as saídas do latch

não são exclusivamente determinadas pelas entradas atuais.

Figura 3.1: (a) Latch nor no estado 0. (b) Latch nor no estado 1. (c) Tabela verdade para nor.

Para ver como isso ocorre, vamos supor que ambos, S e R, sejam 0, o que é

verdade na maior parte do tempo. Apenas para polemizar, vamos supor que 𝑄 =

0. Como Q é realimentado para a porta NOR superior, ambas as suas entradas

são 0, portanto, sua saída, �̅�, é 1. O 1 é realimentado para a porta inferior que,

então, tem entradas 1 e 0, resultando em Q = 0. Esse estado é no mínimo

coerente e está retratado na Figura 3.1(a).

Page 31: MÁQUINAS MULTINÍVEIS CONTEMPORÂNEAS de nível de …

Arquitetura de Computadores

Nível 0: Lógico Digital – Rev1

www.portaleletronica.com.br

Prof. Ricardo Tadeu Ferracioli

31

Agora, vamos imaginar que Q não seja 0, mas 1, com R e S ainda 0. A porta

superior tem entradas de 0 e 1, e uma saída, �̅�, de 0, que é realimentada para a

porta inferior. Esse estado, mostrado na Figura 3.21(b), também é coerente. Um

estado com as duas saídas iguais a 0 é incoerente, porque força ambas as portas

a ter dois 0 como entrada, o que, se fosse verdade, produziria 1, não 0, como

saída. De modo semelhante, é impossível ter ambas as saídas iguais a 1, porque

isso forçaria as entradas a 0 e 1, o que resultaria 0, não 1. Nossa conclusão é

simples: para R = S = 0, o latch tem dois estados estáveis, que denominaremos

0 e 1, dependendo de Q.

Agora, vamos examinar o efeito das entradas sobre o estado do latch. Suponha

que S se torna 1 enquanto Q = 0. Então, as entradas para a porta superior são

1 e 0, forçando a saída �̅� a 0. Essa mudança faz ambas as entradas para a porta

inferior serem 0, forçando a saída para 1. Portanto, ativar S (isto é, fazer com

que seja 1) muda o estado de 0 para 1. Definir R em 1 quando o latch está no

estado 0 não tem efeito algum porque a saída da porta NOR inferior é 0 para

entradas de 10 e entradas de 11.

Usando raciocínio semelhante, é fácil ver que definir S em 1 quando em estado

Q = 1 não tem efeito algum, mas definir R leva o latch ao estado Q = 0.

Resumindo, quando S é definido em 1 momentaneamente, o latch acaba no

estado Q = 1, pouco importando seu estado anterior. Da mesma maneira, definir

R em 1 momentaneamente força o latch ao estado Q = 0. O circuito “se lembra”

se foi S ou R definido por último. Usando essa propriedade podemos construir

memórias de computadores.

• Latches SR com clock

Muitas vezes é conveniente impedir que o latch mude de estado, a não ser em

certos momentos especificados. Para atingir esse objetivo, fazemos uma ligeira

modificação no circuito básico, conforme mostra a Figura 3.2, para obter um latch

SR com clock.

Page 32: MÁQUINAS MULTINÍVEIS CONTEMPORÂNEAS de nível de …

Arquitetura de Computadores

Nível 0: Lógico Digital – Rev1

www.portaleletronica.com.br

Prof. Ricardo Tadeu Ferracioli

32

Figura 3.2: Latch SR com clock.

Esse circuito tem uma entrada adicional, o clock, que em geral é 0. Com o clock

em 0, ambas as portas AND geram saída 0, independentemente de ser S e R, e

o latch não muda de estado. Quando o clock é 1, o efeito das portas AND

desaparece e o latch se torna sensível a S e R. Apesar de seu nome, o sinal do

clock não precisa ser gerado por um clock. Os termos enable e strobe também

são muito usados para indicar que a entrada do clock é 1; isto é, o circuito é

sensível ao estado de S e R.

Até aqui evitamos falar no que acontece quando ambos, S e R, são 1, por uma

boa razão: o circuito se torna não determinístico quando ambos, R e S,

finalmente retornam a 0. O único estado coerente para S = R = 1 é 𝑄 = �̅� = 0;

porém, assim que ambas as entradas voltam para 0, o latch deve saltar para um

de seus dois estados estáveis. Se quaisquer das entradas cair para 0 antes da

outra, a que permanecer em 1 por mais tempo vence, porque, quando apenas

uma entrada for 1, ela força o estado. Se ambas as entradas voltarem a 0 ao

mesmo tempo (o que é muito improvável), o latch salta aleatoriamente para um

de seus estados estáveis.