Você está na página 1de 13

5 Circuitos de Armazenamento

Nos sistemas digitais, e em particular nos computadores, as informaes esto representadas por conjuntos de dgitos binrios denominados "palavras". Nos computadores atuais o tamanho da palavra de 32, 64 ou 128 bits. Porm, at h pouco tempo atrs, os computadores pessoais usavam apenas 8 e 16 bits. Naturalmente, um sistema digital projetado para trabalhar com um determinado tamanho de palavra, devendo portanto conter recursos de hardware que lhe permitam processar e armazenar simultaneamente conjuntos de n bits, onde n o tamanho da palavra. A seguir estudaremos os circuitos digitais responsveis pelo armazenamento de informao. Alguns destes circuitos so construdos de modo a tambm poder manipular a informao armazenada. Dentre as operaes possveis esto os deslocamentos ( direita e esquerda), o incremento e o decremento.

5.1 Registradores
Um registrador um circuito digital formado por n flip-flops, de modo a poder armazenar simultaneamente (e de maneira independente) n bits. Trata-se de um tipo de elemento de armazenamento bsico: um processador possui um conjunto de registradores que pode variar de trs a algumas dezenas. A existncia de registradores dentro do processador acelera o processamento, pois os dados que esto sendo manipulados ficam armazenados prximo dos recursos de processamento (ULA, por exemplo), o que reduz os acessos feitos memria.. A figura 5.1 mostra um registrador de 4 bits feito com flip-flops D (disparados pela borda ascendente).
D3 D2 D1 D0

3
C Q C

2
Q C

1
Q C

0
Q

CK Q3 Q2 Q1 Q0 

Figura 5.1 - Um registrador de 4 bits, com carga paralela. Note que cada flip-flop responsvel pelo armazenamento de um bit, seguindo a notao posicional, e que cada bit possui um caminho independente dos demais, tanto para entrada como para a sada. Por isso, o registrador dito "de carga paralela". Note tambm que o flip-flop de ndice 0 armazena o bit menos significativo e o flip-flop de ndice 3 armazena o bit mais significativo de uma palavra de 4 bits. Um registrador funciona como uma barreira:

Introduo aos Sistemas Digitais (v.2001/1)

Jos Lus Gntzel e Francisco Assis do Nascimento

5-2

os dados disponveis nas entradas D0, D1, D2 e D3 somente sero copiados quando o sinal de relgio (CK, no caso) passar por uma borda ascendente. Os valores copiados quando da passagem de uma borda ascendente permanecero armazenados pelos flip-flops at a ocorrncia da prxima borda ascendente. Isto deixa o registrador imune a eventuais mudanas indesejadas dos sinais representados por D0, D1, D2 e D3. O valor armazenado num flip-flop qualquer est sempre presente na sua sada Q. Isto quer dizer que o dado armazenado no registrador pode ser consultado por outro recurso de hardware a qualquer tempo, desde que haja um caminho fsico (i.e., um conjunto de fios) entre a sada do registrador e a entrada do outro elemento. O outro elemento pode ser, por exemplo, um somador/subtrator como no captulo 3. O registrador da figura 5.1 apresenta, porm, uma deficincia grave: toda a vez que o sinal de relgio CK passar por uma borda ascendente, os valores das entradas D0, D1, D2 e D3 sero copiados, mesmo que isso no seja explicitamente desejado. Entretanto, os circuitos de um computador devem seguir as ordens dos sinais provenientes da unidade de controle. O sinal de relgio serve apenas para determinar o momento no qual uma ordem dever ser cumprida. Logo, um registrador de um computador deve possuir recursos capazes de realizar a carga do dado (i.e., a carga paralela dos sinais conectados as suas entradas) quanto o relgio passar pela borda ativa somente se o sinal de "carga" (tambm conhecido por "load") estiver ativado. A figura 5.2 mostra um registrador de 4 bits com carga paralela e sinal de carga.
D3 D2 D1 D0

0 1

3
C carga CK Q3 Q C

2
Q C

1
Q C

0
Q

Q2

Q1

Q0

Figura 5.2: - Um registrador de 4 bits, com carga paralela e sinal de carga. Nos desenhos de circuitos digitais mais complexos, ser utilizado preferencialmente o smbolo mostrado na figura 5.3, ao invs do esquema completo do circuito, a fim de facilitar a compreenso.
4 carga

Reg 4

Figura 5.3 - Smbolo para um registrador de 4 bits, com carga paralela e sinal de carga. "Reg" o nome do registrador.

Introduo aos Sistemas Digitais (v.2001/1)

Jos Lus Gntzel e Francisco Assis do Nascimento

5-3

5.1.1 Registrador com Carga Paralela (e Sinal de Carga)


Exemplo 5.1: desenhar a forma de onda da sada Q para o circuito que segue.

dado carga C K limpa

D C clear

Q Q

CK limpa dado carga Q Figura 5.4 - Um bit do registrador com carga paralela. Este exemplo ilustra o funcionamento do circuito associado a um bit de um registrador de carga paralela com sinal de carga.

5.1.2 Registradores de Deslocamento (shift registers)


Uma operao muito importante na aritmtica binria o deslocamento de bits. Essa operao consiste em deslocar o contedo de um flip-flop para o seu adjacente. A operao pode se dar da esquerda para a direita (deslocamento direita) ou da direita para a esquerda (deslocamento esquerda). No primeiro caso, cada flip-flop recebe o contedo do seu vizinho imediatamente esquerda. O flip-flop mais esquerda recebe o dado de uma "fonte" externa pela "entrada serial". J o contedo do flip-flop mais direita descartado. No segundo caso, cada flip-flop recebe o contedo do seu vizinho imediatamente direita. O flip-flop mais direita recebe o dado de uma "fonte" externa pela "entrada serial". J o contedo do flip-flop mais esquerda descartado.

Introduo aos Sistemas Digitais (v.2001/1)

Jos Lus Gntzel e Francisco Assis do Nascimento

5-4

Exemplo 5.2: traar as formas de onda dos bits armazenados no registrador-deslocador mostrado a seguir, a partir das formas de onde fornecidas.
dado (entrada serial) D Q D Q D Q D Q

3
C clear Q C

2
Q clear C

1
Q clear C

0
Q clear

limpa CK Q3 Q2 Q1 Q0

CK

limpa dado Q3

Q2 Q1 Q0

Figura 5.5 - Registrador de deslocamento direita de 4 bits (com reset assncrono): exemplo de funcionamento. Repare que h uma ligao entre a sada de cada flip-flop e a entrada do seu vizinho imediatamente direita (adjacente a direita). O registrador de deslocamento do exemplo 5.2 no possui sinal de carga. Porm, tal sinal normalmente existe, como ser visto mais adiante. Um registrador de deslocamento esquerda deve apresentar uma ligao entre a sada de cada flip-flop e a entrada do flip-flop imediatamente esquerda. Um tal registrador mostrado na figura 5.6. Note que a entrada serial est conectada ao flip-flop mais direita (flip-flop que armazena o bit menos significativo). Exemplo 5.3: traar as formas de onda dos bits armazenados no registrador-deslocador mostrado a seguir, a partir das formas de onde fornecidas.

Introduo aos Sistemas Digitais (v.2001/1)

Jos Lus Gntzel e Francisco Assis do Nascimento

5-5

dado (entrada serial) D Q D Q D Q D Q

3
C clear limpa CK Q3 Q C

2
Q clear C

1
Q clear C

0
Q clear

Q2

Q1

Q0

CK limpa dado Q3

Q2 Q1 Q0

Figura 5.6 - Registrador de deslocamento esquerda de 4 bits (com reset assncrono): exemplo de funcionamento.

5.1.3 Registrador de deslocamento com sinal de carga paralela


Um registrador muito til aquele que, alm de permitir a carga paralela por meio de sinal de carga, ainda permite deslocamentos direita e esquerda. Isso possvel se, na entrada de cada flip-flop houver um seletor capaz de escolher de onde vem o dado a ser armazenado no flip-flop corrente: de uma fonte externa (no caso de uma carga paralela), da direita, da esquerda (no caso de deslocamento) ou do prprio flip-flop (no caso de simplesmente se querer manter o contedo inalterado). Um tal registrador mostrado na figura 5.7.

Introduo aos Sistemas Digitais (v.2001/1)

Jos Lus Gntzel e Francisco Assis do Nascimento

5-6

I C1 C0

I2

I1

I0

entrada serial p/ desl. esq.

entrada serial p/ desl. dir.

00 01 10 11

3
C Q DCReset

00 01 10 11

2
C Q DCReset

00 01 10 11

1
C Q DCReset

00 01 10 11

0
C Q DCReset

CK clear Q
3

Figura 5.7 - Um registrador-deslocador de 4 bits com sinal de carga e reset assncrono. As operaes possveis para o registrador-deslocador (tambm conhecido como shift-register) da figura 5.7 so: 1. Carga paralela; 2. Mantm contedo; 3. Zera o contedo (fazendo-se clear=1); 4. Desloca direita e desloca esquerda. E seu funcionamento se d como segue: Se o sinal clear=1, Q3=Q2=Q1=Q0=0; Caso contrrio, vale a tabela verdade a seguir CK C1 X 0 0 1 1 C0 X 0 1 0 1 operao mantm contedo mantm contedo desloca esquerda (shift left) desloca direita (shift right) carga paralela

5.1.4 Registrador Contador Assncrono


Um contador (ou incrementador) um registrador que "conta" em binrio. Ou seja, a cada sinal de relgio, o contedo do registrador incrementado de uma unidade. Logo, um registrador contador de 4 bits capaz de contar de 0 (0000) at 15 (1111). Primeiramente, vejamos como funciona um contador de um bit. Exemplo 5.4: traar a forma de onda de Q para o circuito a seguir.

Introduo aos Sistemas Digitais (v.2001/1)

Jos Lus Gntzel e Francisco Assis do Nascimento

5-7

CK D CK C clear Q limpa Q Q Q

limpa

Figura 5.8 - Contador de um bit (com reset assncrono). Um circuito contador de mais bits possui uma conexo entre cada flip-flop vizinho, de modo que cada flip-flop de maior ordem responsvel pela ordem de incremento de seu vizinho de menor ordem. Exemplo 5.5: encontrar as formas de onda para as sadas dos flip-flops do registrador abaixo.

0
CK limpa Q0 C clear Q C

1
Q clear C

2
Q clear

Q1

Q2

CK limpa Q0

Q0 Q1

Q1 Q2

Figura 5.9 - Contador assncrono de 3 bits (com reset assncrono).

Introduo aos Sistemas Digitais (v.2001/1)

Jos Lus Gntzel e Francisco Assis do Nascimento

5-8

5.2 Memrias
Na seo anterior, vimos como so construdos diversos tipos de registradores. Apesar de serem muito rpidos, os registradores tm capacidade de armazenamento reduzidssima: cada registrador capaz de armazenar somente uma palavra por vez. Porm, nos sistemas digitais em geral, e particularmente nos computadores, grandes quantidades de informao (palavras) devem poder ser armazenadas. Para tanto, necessrio que o sistema digital possua um conjunto especfico de circuitos que sejam mais apropriados ao armazenamento simultneo de um grande nmero de palavras. Tais circuitos efetivamente existem e so genericamente denominados de memrias. Do ponto de vista do funcionamento, as memrias podem permitir apenas a consulta (leitura) ao seu contedo ou podem permitir a consulta (leitura) e a modificao (escrita) de seu contedo. As memrias que s permitem a leitura so chamadas de ROMs (Read-Only Memories, que significa memrias de leitura apenas), enquanto que as memrias que permitem a leitura e a escrita so genericamente denominadas RAMs (Random-Access Memories, que significa memrias de acesso randmico). O contedo das ROMs pode ser escrito (gravado) quando da fabricao ou mesmo aps, por um usurio, que no caso pode ser o fabricante do computador, por exemplo. A caracterstica principal que uma vez gravadas as informaes na ROM, estas no podero ser modificados, mas somente consultadas (lidas). J as memrias RAM possuem circuitos capazes de armazenar as informaes binrias, as quais podem ser modificadas um nmero indeterminado de vezes. Tanto as memrias ROM como as memrias RAM so fabricadas com a tecnologia CMOS, que alis a mesma tecnologia de fabricao dos microprocessadores. Porm, o que origina a diferena de funcionamento entre ROMs e RAMs o tipo de circuitos utilizados. Na seo que segue, veremos detalhes de implementao das memrias RAM, as quais so utilizadas na implementao da memria principal dos computadores.

5.2.1 Memria de Acesso Randmico (RAM - Random-Access Memory)


Nesta seo iremos estudar a estrutura fsica das memrias RAM, isto , os circuitos que as compem. Uma memria RAM organizada como uma matriz de 2n linhas com m bits armazenados em cada linha, perfazendo um total de 2n x m bits. Em geral, n est entre 16 e 32, enquanto que m pode ser 1, 4, 8, 16 ou 32. A figura 5.10 ilustra essa organizao matricial. Note que existem 2n linhas, tambm chamadas posies. A cada posio associado um endereo, iniciando pelo endereo 0 (zero). Portanto, so necessrios n bits para decodificar os 2n endereos existentes. Suponha que se deseje fabricar num nico chip (circuito integrado) uma memria RAM capaz de armazenar 2n x m bits, seguindo a organizao descrita anteriormente. A figura 5.11 mostra duas representaes grficas possveis para um tal chip. Este chip dever possuir n entradas de endereo (An-1, , A1,A0), de modo a se poder selecionar uma (e somente uma) dentre todas as 2n posies existentes na matriz. Este chip tambm dever conter m entradas (In-1, , I1,I0), e m sadas (On-1, , O1,O0), de modo a permitir a leitura (=consulta) do contedo de uma das 2n linhas ou a escrita (=gravao) de uma nova informao numa das 2n linhas da matriz. Como existem duas operaes possveis sobre o contedo da matriz (leitura

Introduo aos Sistemas Digitais (v.2001/1)

Jos Lus Gntzel e Francisco Assis do Nascimento

5-9

e escrita), natural que deva existir uma entrada de seleo de operao. Esta entrada ser denominada RWS (Read/Write Select). Quando RWS=0, a operao a ser realizada ser a leitura do contedo da posio cujo endereo est presente na entrada de endereos. O valor lido aparecer na sada do chip. Quando RWS=1, a operao a ser realizada ser a escrita da informao binria presente na entrada do chip na linha cujo endereo est presente na entrada de endereo. Por fim, deve existir um sinal de habilitao do chip como um todo (CS Chip Select). Caso CS=0, o chip est desativado. Caso CS=1, o chip estar realizando a operao especificada pelo valor da entrada RWS. endereo em binrio 0000 0001 0010 0011 0100 0101 0110 0111 endereo em decimal 0 1 2 3 4 5 6 7 : : 2n-2 2n-1 contedo (exemplo) 0110100 0110100 1011100 1010001 0110101 1110110 1010001 0001101 : : 0001100 1001100 m bits Figura 5.10 - Organizao de uma memria RAM: linhas e endereos. ...
An-1 Im-1 I1 I0 An-1

1110 1111

A1 A0 CS RWS

RAM 2n x m

A1 A0 CS

RAM 2n x m

Om-1

O1

O0

RWS

I/Om-1

I/O1 I/O0

... (a)

... (b)

Figura 5.11 - Representaes grficas possveis para um chip de memria RAM. O sinal de habilitao do chip, CS, serve para o caso em que seja necessrio mais de um chip para implementar a memria do computador.

Introduo aos Sistemas Digitais (v.2001/1)

Jos Lus Gntzel e Francisco Assis do Nascimento

5-10

Quando o nmero de bits a serem armazenados em cada posio de memria m for pequeno, o chip RAM poder ter as entradas separadas das sadas, conforme representado pelo smbolo da figura 5.11a. Entretanto, o mais comum que um mesmo conjunto de pinos do chip sirvam como entradas e como sadas, situao representada pelo smbolo da figura 5.11b. A funo ir depender da operao, selecionada por meio do pino RWS. Esse uso compartilhado reduz o nmero de pinos do chip, tornando-o mais barato. Do ponto de vista estrutural, uma memria RAM organizada como uma matriz de elementos bsicos de memria, buffers de entrada e sada e um decodificador de endereos. Como mostrado na figura 5.12, uma clula de memria (CM) pode ser representada simbolicamente como sendo constituda por um latch D controlado cuja entrada est conectada a sada de uma porta E e cuja sada se conecta entrada de um buffer.1 Quando o sinal de seleo de linha igual a 1, o bit armazenado no latch passar pelo buffer, ficando disponvel na sada da clula. Se o sinal de habilitao de escrita tambm valer 1, o valor presente na entrada ser armazenado no latch. O sinal de habilitao de escrita serve como controle para o latch. seleo de linha

CM
sada

entrada

D C

buffer habilitao de escrita Figura 5.12 - Clula de memria (CM). A figura 5.13 mostra um exemplo de memria RAM 4 x 4, constituda por 16 CMs. Para cada acesso memria, o decodificador de endereos ativa o sinal de seleo de linha associado ao endereo aplicado as suas entradas, o que ativa todos os CMs da linha selecionada. Neste momento, se RWS=1 e CS=1, o novo conjunto de bits ser armazenado nas CMs da linha selecionada. Por outro lado, se RWS=0 e CS=1, os bits que esto armazenados na linha selecionada passaro pelos buffers de sada das respectivas CMs e pelos buffers de entrada/sada do chip. A organizao da memria RAM implica em restries de tempo nas operaes de escrita e leitura. Por exemplo, como o caminho crtico da entrada a sada passa pelo decodificador, as entradas de endereo devem estar estveis antes de quaisquer outros sinais. Isto significa que durante o ciclo de leitura mostrado pela figura 5.14 as entradas de endereo
1

Um buffer (as vezes chamado driver) pode ter duas funes: reforar o sinal lgico (o que necessrio quando existem muitas portas conectadas a uma mesma sada ou quando o sinal deve percorrrer um fio muito longo) ou servir como uma chave eletrnica que isola fisicamente a sada da entrada (o que serve para disciplinar o acesso de vrios sinais a um mesmo fio ou barramento).

Introduo aos Sistemas Digitais (v.2001/1)

Jos Lus Gntzel e Francisco Assis do Nascimento

5-11

devero ser fornecidas em t0, seguidas por CS em t1. Assim, os dados da memria estaro disponveis somente em t2. O atraso t2-t0 denominado tempo de acesso memria (memory-access time), enquanto que o tempo t2-t1 denominado tempo de habilitao da sada (output-enable time). Note que aps os valores das entradas de endereo terem sido modificadas em t3, os dados ainda estaro disponveis at t5. O intervalo t5-t3 denominado tempo de manuteno da sada (output-hold time). J o intervalo t5-t4 denominado tempo de desabilitao da sada (output-disable time). Como o caminho entre as entradas de endereo e as sadas maior do que o caminho entre CS at as sadas, o tempo de acesso determina a validade dos dados sempre que o endereo e CS forem aplicados ao mesmo tempo. Por outro lado, se o endereo e CS deixarem de ser vlidos (CS=0, no caso), o tempo de desabilitao determinar a validade dos dados.
0
CM CM CM CM

A1
DEC 2x4
CM CM CM CM

A0
2
CM CM CM CM

3 write enable
CM CM CM CM

RWS CS IO3 IO2 IO1 IO0

Figura 5.13 - Diagrama de blocos de uma memria RAM A figura 5.15 mostra as restries temporais para o caso de um ciclo de escrita numa memria RAM. No exemplo, foi assumido que CS e RWS foram aplicados simultaneamente, no instante t1. Como o atraso entre o endereo e a sada maior do que o atraso entre CS ou RWS e a sada, o endereo deve ser aplicado algum tempo antes, como por exemplo em t0. O atraso t1-t0 denominado tempo de preparao do endereo (address setup time). Como cada CM feita a partir de um latch D controlado com CS fazendo o papel de controle, cada bit do dado na borda de descida de CS (t3) ficar armazenado no respectivo latch. Entretanto, necessrio que o dado esteja estvel por algum tempo antes e depois da borda de descida de CS para garantir a escrita. Na figura 5.15 esses tempos so anotados como tempo de

Introduo aos Sistemas Digitais (v.2001/1)

Jos Lus Gntzel e Francisco Assis do Nascimento

5-12

preparao do dado (data setup time) e tempo de manuteno do dado (data hold time), sendo definitos respectivamente como t3-t2 e t4-t3. Tambm importante ressaltar que CS ou RWS devem ter uma durao igual ou maior que o intervalo de tempo t3-t1, o qual denominado durao do pulso de escrita (write-pulse width). Alm disso, o endereo deve estar vlido por algum tempo aps a borda de descida de RWS ou CS. Este tempo chamado tempo de manuteno do endereo (address-hold time), e definido como t5-t3.
RWS CS

endereo

endereo vlido

dados
output-enable time access time

dados vlidos
output-disable time output-hold time

t0

t1

t2

t3

t4

t5

Figura 5.14 - Ciclo de leitura em uma memria RAM.


RWS CS

endereo

endereo vlido

dados
addresssetup time

dados vlidos
data-setup time write pulse width addresshold time datahold time

t0

t1

t2

t3

t4

t5

Figura 5.15 - Ciclo de escrita em uma memria RAM. Apesar da CM ter sido representada como sendo constituda por um latch D e duas portas, na prtica sua fabricao pode ser levada a cabo com estruturas mais simples, que utilizam menos transistores. A forma de implementao de CMs leva a classificao das memrias RAM em estticas e dinmicas. No caso da RAM esttica (conhecida por SRAM, static RAM), a CM feita com 6 transistores, onde quatro deles formam dois inversores

Introduo aos Sistemas Digitais (v.2001/1)

Jos Lus Gntzel e Francisco Assis do Nascimento

5-13

conectados em lao de realimentao, fazendo o papel do latch D. No lugar da porta E e do buffer de sada h um transistor (para cada um, no caso), o qual serve como chave de ligadesliga. A memria SRAM capaz de manter seu contedo por tempo indeterminado, desde que este a alimentao no seja interrompida. No caso da memria dinmica (conhecida por DRAM, dynamic RAM), cada CM implementada com somente um transistor. A desvantagem deste tipo de RAM que o contedo da CM perdido aps a operao de leitura, devendo ser reescrito. Para piorar, devido s imperfeies do processo de fabricao, o contedo da CM s se mantm por um curto perodo de tempo. Estes dois problemas so contornados pela utilizao de um mecanismo de reflash construdo dentro da memria, o qual periodicamente refora o contedo de cada linha de CMs. Durante a operao de reflash, as operaes de leitura e escrita so suspensas, o que reduz o desempenho deste tipo de memria. As memrias DRAM apresentam uma densidade muito grande, o que se traduz em maiores capacidades de armazenamento. Elas tambm apresentam um custo bem reduzido. Devido a estas duas caractersticas, as DRAMs so muito utilizadas no projeto de produtos eletrnicos. Por outro lado, as memrias SRAM so mais caras e apresentam menores capacidades de armazenamento. Porm, so mais velozes do que as memrias DRAM, sendo portanto apropriadas para os casos em que a quantidade de dados a serem armazenados no grande e uma velocidade maior de operao necessria. As memrias SRAM e DRAM so ditas memrias volteis, pois, uma vez interrompido o fornecimento de energia, elas perdem seu contedo. J as memrias ROM so ditas novolteis, pois no perdem seu contedo quando o fornecimento de energia interrompido. As memrias ROM tem uma organizao semelhante s memrias RAM (matriz de CMs com decodificador de endereo e buffers de sada). Porm, a CM de uma ROM bem mais simples, normalmente constituda por um nico transistor ou diodo, o qual pode ser configurado uma vez para permitir o acesso ao 0 lgico (=0V) ou ao 1 lgico (de 5V a 1,5 V, conforme a tecnologia). Nos computadores, as memrias ROM servem para armazenar todas as configuraes bsicas que jamais sero alteradas, como por exemplo, as rotinas de entrada e sada (denominadas de ROM-BIOS, nos computadores tipo PC).

Bibliografia Suplementar
[1] GAJSKI, Daniel D. Principles of Digital Design, New Jersey: Prentice Hall, 1997 (ISBN 0-13-301144-5) [2] MANO, M. Morris; Computer Engineering: Hardware Design. New Jersey: Prentice Hall, 1988 (ISBN 0-13-162926-3) [3] BROWN, Stephen; VRANESIC, Zvonko. Fundamentals of Digital Logic with VHDL Design. McGraw-Hill Higher Education (a McGraw-Hill Company), 2000 (http://www.mhhe.com/engcs/electrical/brownvranesic )