Introdução aos Sistemas Digitais (V.2001/1) - Parte 5

Introdução aos Sistemas Digitais (V.2001/1) - Parte 5

(Parte 1 de 4)

5 Circuitos de Armazenamento

Nos sistemas digitais, e em particular nos computadores, as informações estão representadas por conjuntos de dígitos binários denominados "palavras". Nos computadores atuais o tamanho da palavra é de 32, 64 ou 128 bits. Porém, até há pouco tempo atrás, 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 responsáveis pelo armazenamento de informação. Alguns destes circuitos são construídos de modo a também poder manipular a informação armazenada. Dentre as operações possíveis estão 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 básico: um processador possui um conjunto de registradores que pode variar de três a algumas dezenas. A existência de registradores dentro do processador acelera o processamento, pois os dados que estão sendo manipulados ficam armazenados próximo dos recursos de processamento (ULA, por exemplo), o que reduz os acessos feitos à memória.. A figura 5.1 mostra um registrador de 4 bits feito com flip-flops D (disparados pela borda ascendente).

Figura 5.1 - Um registrador de 4 bits, com carga paralela.

Note que cada flip-flop é responsável pelo armazenamento de um bit, seguindo a notação posicional, e que cada bit possui um caminho independente dos demais, tanto para entrada como para a saída. Por isso, o registrador é dito "de carga paralela". Note também 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:

Introdução aos Sistemas Digitais (v.2001/1) José Luís Güntzel e Francisco Assis do Nascimento 5-2 os dados disponíveis nas entradas D0, D1, D2 e D3 somente serão copiados quando o sinal de relógio (CK, no caso) passar por uma borda ascendente. Os valores copiados quando da passagem de uma borda ascendente permanecerão armazenados pelos flip-flops até a ocorrência da próxima borda ascendente. Isto deixa o registrador imune a eventuais mudanças indesejadas dos sinais representados por D0, D1, D2 e D3. O valor armazenado num flip-flop qualquer está sempre presente na sua saída 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 físico (i.e., um conjunto de fios) entre a saída do registrador e a entrada do outro elemento. O outro elemento pode ser, por exemplo, um somador/subtrator como no capítulo 3.

O registrador da figura 5.1 apresenta, porém, uma deficiência grave: toda a vez que o sinal de relógio CK passar por uma borda ascendente, os valores das entradas D0, D1, D2 e D3 serão copiados, mesmo que isso não seja explicitamente desejado. Entretanto, os circuitos de um computador devem seguir as ordens dos sinais provenientes da unidade de controle. O sinal de relógio 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 relógio passar pela borda ativa somente se o sinal de "carga" (também conhecido por "load") estiver ativado. A figura 5.2 mostra um registrador de 4 bits com carga paralela e sinal de carga.

carga CK carga

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 símbolo mostrado na figura 5.3, ao invés do esquema completo do circuito, a fim de facilitar a compreensão.

carga Reg 4

4 carga Reg

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

Introdução aos Sistemas Digitais (v.2001/1) José Luís Güntzel 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 saída Q para o circuito que segue.

carga limpa

C Q clear dado

CK limpa dado carga carga limpa

C Q clear dado carga limpa

C Q clear

C Q clear dado

CK limpa dado carga

CK limpa dado carga

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 operação muito importante na aritmética binária é o deslocamento de bits. Essa operação consiste em deslocar o conteúdo de um flip-flop para o seu adjacente. A operação 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 conteúdo do seu vizinho imediatamente à esquerda. O flip-flop mais à esquerda recebe o dado de uma "fonte" externa pela "entrada serial". Já o conteúdo do flip-flop mais à direita é descartado.

No segundo caso, cada flip-flop recebe o conteúdo do seu vizinho imediatamente à direita. O flip-flop mais à direita recebe o dado de uma "fonte" externa pela "entrada serial". Já o conteúdo do flip-flop mais à esquerda é descartado.

Introdução aos Sistemas Digitais (v.2001/1) José Luís Güntzel e Francisco Assis do Nascimento 5-4

Exemplo 5.2: traçar as formas de onda dos bits armazenados no registrador-deslocador mostrado a seguir, a partir das formas de onde fornecidas.

dado (entrada serial)

limpa Q3 clear

Q Q2 clear

Q Q0 clear

QQ1 clear limpa dado Q3

Q2 Q1 dado (entrada serial) limpa Q3 clear

Q Q2 clear

Q Q0 clear

QQ1 clear dado (entrada serial) limpa Q3 clear

Q Q3 clear clear

Q Q2 clear

Q Q2 clear clear

Q Q0 clear

Q Q0 clear clear

QQ1 clear

Q Q1 clear clear limpa dado Q3

(Parte 1 de 4)

Comentários