apostila arquitectura de micros 1

Propaganda
Flip-Flops
Introdução
Os circuitos combinacionais são aqueles onde as saídas dependem
apenas dos níveis lógicos colocados nas entradas. A mesma combinação de
entrada sempre produzirá o mesmo resultado na saída, porque circuitos
combinacionais não possuem memória.
A maioria dos sistemas digitais é composta tanto por circuitos
combinacionais como de elementos de memória. O elemento de memória mais
importante é o flip-flop.
Flip-Flop R-S (Reset – Set)
O circuito básico do flip-flop R-S é mostrado na fig.
O circuito acima mostra que o estado futuro das saídas Q e Q
dependem R e S e também do estado atual dessas saídas. Isso é mostrado na
tabela.
Nos casos 0 e 1, com S = 0 e R = 0, as saídas Q e Q permaneceram
inalteradas (memória). Nos casos 2 e 3, com S = 0 e R = 1, a saída Q foi para
0 e Q foi para 1. Nos casos 4 e 5, com S = 1 e R = 0, a saída Q foi para 1 e Q
foi para 0. Nos casos 6 e 7, com S = 1 e R = 1, as saídas Q e Q foram para 1,
ocasionando um problema, já que as saídas Q e Q devem ser
complementares.
Uma tabela simplificada e o símbolo do flip-flop R-S são mostrados na
fig.
O circuito do flip-flop R-S também pode ser implementado usando portas
NOR.
Flip-Flops com Clock
Circuitos que utilizam clock são chamados de circuitos síncronos. Muitos
flip-flops utilizam um sinal de clock para determinar o momento em que suas
saídas mudarão de estado. O sinal de clock é comum para todas as partes do
circuito.
Normalmente, o sinal de clock é uma onda quadrada e durante uma
transição positiva (nível 0 para nível 1) ou transição negativa (nível 1 para nível
0) a saída poderá mudar de estado.
Tempos de Setup e Hold
Os tempos de setup e hold são parâmetros que devem ser observados
para que o flip-flop possa trabalhar de modo confiável. O tempo de setup, tS,
corresponde ao intervalo no qual as entradas devem permanecer estáveis
antes da transição do clock. O tempo de hold, tH, corresponde ao intervalo no
qual as entradas devem permanecer estáveis depois da transição do clock.
Os tempos de setup e hold mínimos devem ser respeitados para o
funcionamento confiável do flip-flop.
TS = Tempos de setup
TH = Tempos de hold
Flip-Flop R-S com Clock
O símbolo do flip-flop R-S com clock é mostrado na fig.
Fig. Circuito lógico interno do flip-flop R-S com clock
O detector de transição é um circuito que habilitará, por alguns instantes,
as entradas SET e RESET, durante a transição de CLOCK. O circuito típico de
um detector de transição é mostrado na fig.
Fig. Circuitos detectores de transição positiva e negativa
Os tempos dos pulsos de CLK* correspondem aos tempos de atraso da
porta NOT, em torno de 5 ns.
Flip-Flop J-K
O símbolo do flip-flop J-K é mostrado na fig.
A operação do flip-flop J-K é semelhante à do flip-flop R-S. A diferença é
que o flip-flop J-K não possui a condição proibida, ou seja, J = K = 1. Nessa
situação, a saída será complementada (valor anterior será invertido).
O circuito interno do flip-flop J-K é mostrado na fig. 4-9:
Flip-Flop D
O símbolo do flip-flop D é mostrado na fig.
O circuito interno do flip-flop D é mostrado na fig. 4-11:
Circuito lógico interno do flip-flop D
Latch D
O símbolo lógico do latch D é mostrado na fig. 4-12. Diferentemente do
flip-flop D, o latch D possui uma entrada EN. Quando esta entrada estiver
habilitada, a saída é a cópia da entrada. Se ela estiver desabilitada, a saída
não mudará.
O circuito interno é mostrado na fig.
Entradas Assíncronas
Todas as entradas dos flip-flops até agora vistos dependem do sinal de
clock. Estas entradas são chamadas entradas síncronas. Em muitos flip-flops
existem outras entradas que são chamadas entradas assíncronas, ou seja, não
dependem do sinal de clock para atuarem.
Essas entradas são usadas para colocar o flip-flop no estado “0” ou “1”,
a qualquer instante. A tabela mostra as entradas assíncronas:
Tabela
PRESET CLEAR Resposta do Flip-Flop
Para a operação normal do flip-flop, as entradas PRESET e CLEAR
devem estar em “1”. A qualquer momento podemos forçar a saída Q a ser “0”
ou “1”. A última combinação não pode ser usada, já que é contraditória.
A fig. mostra as entradas assíncronas de um flip-flop J-K:
Simbologia do flip-flop J-K com as entradas assíncronas
Características de Temporizações dos Flip-Flops
As seguintes características de tempo devem ser respeitadas para o
funcionamento correto dos flip-flops.
Tempos de Setup e Hold – Correspondem aos intervalos de tempo que a
entrada deve permanecer estável antes e depois da transição do clock.
- Atrasos de Propagação – Na mudança de estado da saída, sempre
haverá um atraso entre a aplicação de um sinal na entrada e o momento
que a saída muda.
- Freqüência Máxima de Clock, fMAX – Esta é a freqüência mais alta que
pode ser aplicada no flip-flop de modo a dispará-lo confiavelmente.
- Tempos de Duração do Clock em ALTO e BAIXO – O tempo de duração
do clock em nível ALTO, tw(H) e o tempo de duração em nível BAIXO, tw(L)
são mostrados na figura abaixo.
Tempos de duração de clock em ALTO e BAIXO
Largura dos Pulsos Assíncronos – Assim como foram definidos larguras
mínimas de pulsos para o clock, as entradas assíncronas PRESET e
CLEAR também possuem larguras mínimas de pulsos para uma operação
correta.
Fig. 4-17: Larguras mínimas de pulsos assíncronos
Tempos de Transição do Clock – Para garantir o funcionamento correto
do flip-flop, o tempo transição do clock deve ser o menor possível. Para
dispositivos TTL esse tempo é 50 ns e para dispositivos CMOS, 200 ns.
Circuitos Geradores de Clock
A maioria dos sistemas digitais utiliza algum circuito gerador de clock.
Dentre essas aplicações podemos ter algumas que utilizam um sinal de clock
sem a exigência de precisão. Outras, porém, a precisão é fundamental.
Existem vários tipos de osciladores que podem gerar pulsos de clock
para sistemas digitais. Os menos precisos e menos estáveis (dependendo da
aplicação) utilizam resistores e capacitores. Os mais precisos e estáveis
utilizam cristais de quartzo e com freqüências muito maiores do que os circuitos
que utilizam resistores e capacitores como geradores de clock.
Oscilador Schmitt-Trigger
Um típico gerador de clock usando dispositivos Schmitt-Trigger é
mostrado na figura abaixo:
Fig. Circuito de um oscilador utilizando inversor Schmitt-Trigger
Temporizador 555 como Oscilador
O circuito integrado 555 também pode ser usado como gerador de clock.
A figura abaixo mostra isso:
Fig. Circuito de um oscilador utilizando o temporizador 555
Osciladores a Cristal de Quartzo
A principal característica dos osciladores a cristal de quartzo é sua
estabilidade e precisão quanto à freqüência de oscilação. A figura seguinte
mostra circuitos osciladores que utilizam cristais de quartzo.
Contadores
Introdução
Os flip-flops têm funções ilimitadas em sistemas digitais. Podemos
associá-los e utilizá-los como contadores, registradores e muitos outros
circuitos.
Os contadores podem ser assíncronos ou síncronos. Basicamente, a
principal diferença entre eles é que o síncrono utiliza um sinal de clock comum
a todos os flip-flops e o assíncrono possui um sinal de clock que é dividido até
o último flip-flop.
Os registradores também são arranjos de flip-flops, mas com o objetivo
de armazenar, manipular e transferir dados entre outros registradores ou
circuitos.
Contadores Assíncronos
Os contadores assíncronos também são chamados de contadores por
pulsação (ripple counter). Um circuito típico de um contador assíncrono é
mostrado na fig.
Fig. Contador assíncrono utilizando flip-flops J-K
Estado D C B A Decimal
A tabela mostra os estados de contagem deste contador assíncrono
de quatro bits.
Podemos perceber que a cada 16 estados esse contador reinicia sua
contagem. Então ele é um contador assíncrono módulo 16, ou seja, tem 16
estados (0000 até 1111) distintos. Equacionando:
Módulo 2N
onde N é o número de flip-flops conectados (número de bits).
Nos contadores assíncronos, a freqüência do clock é dividida por 2 em
cada flip-flop, ou seja: na saída A teremos Clock / 2, na saída B teremos Clock /
4, na saída C teremos Clock / 8 e na saída D teremos Clock / 16. Concluindo,
os contadores assíncronos são divisores de freqüência e no último flip-flop
teremos a freqüência de clock dividida pelo módulo desse contador.
Contadores de Módulo < 2N
Um contador assíncrono com N flip-flops terá, no máximo, módulo 2N. Se
precisarmos de um contador com módulo menor do que 2N será necessário
utilizar um circuito adicional, conforme mostrado na fig. 5-2:
Fig. Contador assíncrono com módulo < 2N
A fig. mostra um contador módulo 6. Se não houvesse a porta NAND
ligada nas entradas CLEAR dos flip-flops, o módulo seria 8. A seqüência de
contagem é mostrada na tabela
Tabela
5.4- Diagrama de Transição de Estados
O diagrama de transição de estados é mostrado na fig.
Fig. Diagrama de transição de estados de um contador módulo 6
Neste diagrama, as linhas contínuas correspondem aos estados estáveis
e as linhas tracejadas indicam o estado temporário.
O procedimento para a construção de um contador módulo X é:
- Determinar o menor número de flip-flops tal que 2N X. Se 2N = X, não é
necessário conectar a porta NAND na entrada assíncrona CLEAR;
- Conectar a porta NAND nas entradas assíncronas CLEAR de todos os flipflops;
- Determinar quais saídas estarão em ALTO na contagem X. Então é só
conectar essas saídas nas entradas da porta NAND.
Contadores de Década
Contadores de década ou decádicos são contadores que possuem 10
estados distintos, não importando a seqüência. Quando um contador decádico
conta em seqüência de 0000 a 1001 (0 a 9), ele é chamado de contador BCD.
Circuitos Integrados de Contadores Assíncronos
Existem vários circuitos integrados de contadores assíncronos, tanto
TTL como CMOS.
O circuito integrado TTL 74LS293 é um contador com quatro flip-flops JK.
Vários circuitos TTL têm suas versões CMOS. O circuito integrado CMOS
74HC4024 é um contador com sete flip-flops que não possui correspondente
TTL.
Contador Assíncrono Decrescente
Os contadores que contam progressivamente a partir do zero são
denominados contadores crescentes. Já os contadores decrescentes contam
do valor máximo até zero.
Um contador decrescente pode ser construído conforme mostrado na fig.
Nesse circuito vemos que o clock de cada flip-flop é acionado com a
saída invertida do flip-flop anterior. Com isso a saída é invertida, ou seja,
conforme a tabela abaixo:
próximo pulso fará com que o contador BCD de unidades vá a 0.
Nesse momento também ocorrerá uma transição de 1 para 0 (borda de
descida) da saída D que está ligada ao clock do contador BCD de dezenas. E
agora o display mostrará o valor 010.
Isso continua até 999 quando, no próximo pulso, os contadores irão para
000, iniciando novamente a contagem.
Registradores
Introdução
A utilização mais comum dos flip-flops é no armazenamento e
transferência de informações. Essas informações são armazenadas em grupos
de flip-flops chamados registradores.
Além de armazenar informações, os registradores têm a capacidade de
transferir essas informações para outros registradores. Isso é bastante
interessante, já que o armazenamento e a transferência de dados são as
principais características dos sistemas digitais.
Registradores de Deslocamento
A fig. mostra um registrador de deslocamento de 4 bits e suas
formas de onda.
A cada pulso de clock, o valor contido nas entradas J e K dos flip-flops é
transferido para a saída. Essa saída está conectada na entrada do próximo flipflop
e no final de 4 pulsos de clock, o valor da entrada DADOS, que foi
transferido serialmente, estará armazenado no registrador.
6.3- Transferência Paralela de Dados entre Registradores
A fig. mostra a transferência paralela de dados entre dois
registradores:
Fig.: Transferência paralela de dados entre registradores
As saídas dos flip-flops que constituem o registrador X estão conectadas
nas entradas dos flip-flops que constituem o registrador Y. Depois do pulso
TRANFER, o conteúdo armazenado no registrador X é transferido para o
registrador Y.
Transferência Serial de Dados entre Registradores
A fig. 6-3 mostra a transferência serial de dados entre dois registradores.
Fig.: Transferência serial de dados entre registradores
Comparação entre a Transferência Paralela e a
Transferência Serial
Na transferência paralela, os dados são transmitidos simultaneamente
na ocorrência de um único pulso de transferência. Na transferência serial, cada
bit é transmitido a cada pulso de transferência.
Com relação à velocidade de transmissão, a transferência paralela é
mais rápida do que a serial. Em compensação, a transferência paralela
necessita de um número maior de conexões entre os registradores.
Circuitos Integrados de Registradores
Os registradores podem ser classificados da forma com a qual seus
dados são transferidos:
- Entrada paralela / saída paralela – 74174, 74LS174, 74HC174;
- Entrada serial / saída serial – 4731B;
- Entrada paralela / saída serial – 74165, 74LS165, 74HC165;
- Entrada serial / saída paralela – 74164, 74LS164, 74HC164.
Existem outras versões de registradores como, por exemplo:
- 74194, 74LS194, 74HC194 – registrador de deslocamento bidirecional
universal de quatro bits com entrada paralela e saída paralela.
- 74373, 74LS373, 74HC373, 74HCT373 – registrador de oito bits de entrada
paralela e saída paralela que contém oito latches tipo D com saídas em
tristate.
- 74374, 74LS374, 74HC374, 74HCT374 – registrador de oito bits de entrada
paralela e saída paralela que contém oito flip-flops tipo D com saídas em
tristate.
Unidade Lógica e Aritmética
O principal objetivo de uma ULA é aceitar dados binários armazenados
na memória e executar as operações lógicas e aritméticas sobre estes dados
de acordo com as instruções da unidade de controle.
A fig. mostra os principais blocos funcionais de uma ULA:
Fig.: Blocos funcionais de uma ULA
A ULA é constituída de, pelo menos, dois registradores: o registrador B e
o registrador acumulador. Ela também possui lógica combinacional que realiza
as operações lógicas e aritméticas sobre os números binários armazenados
nos registradores B e acumulador.
Por exemplo, os passos para a execução de uma operação de adição
são mostrados a seguir:
- A unidade de controle recebe uma instrução da unidade de memória
especificando que um número armazenado em uma posição particular de
memória deve ser adicionado ao número que está armazenado na
acumulador;
- O número a ser adicionado é transferido da memória para o registrador B;
- O número no registrador B e o número no acumulador são somados nos
circuitos lógicos (ao comando da unidade de controle). O resultado é
enviado para o acumulador para ser armazenado.
Somador Binário Paralelo
Vamos analisar a seguinte operação de adição de dois números
binários:
Podemos ver que cada bit das parcelas é somado para gerar um bit no
resultado da adição. No caso de um carry (vai-um), esse também é somado,
ou seja:
O diagrama de blocos de um somador binário paralelo é mostrado na fig.
Diagrama em blocos de um somador binário paralelo
O bloco SC #0 é chamado somador completo porque soma bits A0 e B0
das parcelas e ainda um possível bit C0 de carry.
Projeto de um Somador Completo
O bloco do somador completo possui três entradas (A, B e CIN) e duas
saídas (S e COUT). As entradas A e B são os bits a serem adicionados e CIN é o
carry do bit anterior. A saída S é o resultado da adição e COUT é a saída de
carry, indicando um vai-um.
A tabela 8-2 relaciona todos os possíveis casos de uma adição.
Fig.: Bloco lógico do somador completo de 1 bit
Pelo método do Mapa de Karnaugh podemos encontrar a expressão
para S e COUT:
S A.B.CIN A.B.CIN A.B.CIN A.B.CIN A B CIN 
C A.C B.C A.B OUT IN IN 

A fig. mostra o circuito de um somador completo (SC).

Circuito lógico do somador completo de 1 bit
A fig. 8-6 mostra um circuito de um somador paralelo completo de 4 bits
com registrador.
O procedimento para um operação de adição é o seguinte:
- Pulsar CLEAR para fazer registrador A = 0000;
- Colocar a primeira parcela a ser somada nas entradas D3D2D1D0 (esse
dado pode estar vindo de uma memória). Pulsar LOAD para que as
entradas sejam transferidas para o registrador B;
- Pulsar TRANSFER para a realização da operação de adição do conteúdo
do registrador A com o conteúdo do registrador B. Nesse caso, o valor de B
é transferido para A, resultando A = B;
- Colocar a segunda parcela a ser somada nas entradas D3D2D1D0. Pulsar
LOAD para que as entradas sejam transferidas para o registrador B;
- Pulsar TRANSFER para a realização da operação de adição do conteúdo
do registrador A com o conteúdo do registrador B. O resultado da adição
está no registrador A (saídas).
Somador Paralelo Integrado
Os circuitos integrados 7483A, 74LS83A, 74283 e 74LS283 são
somadores paralelos de quatro bits.
Ligação em Cascata de Somadores Paralelos
Blocos de somadores podem ser associados em cascata de forma a
efetuar adições de números binários maiores. Por exemplo, se dois somadores
de quatro bits forem associados em cascata podemos efetuar adições de
números com oito bits.
8.12- Circuito Integrados de ULAs
As ULAs são circuitos capazes de realizar diversas operações lógicas e
aritméticas sobre os dados binários de entrada. Dentre essas operações
podemos citar:
- Operação Clear;
- Operação Soma;
- Operação Subtração;
- Operação EX-OR;
- Operação OR;
- Operação AND;
- Operação PRESET.
Os circuitos integrados 74LS382 e 74HC382 são ULAs que possuem as
características acima citadas.
O 74LS181/HC181 é uma ULA de quatro bits e tem até 16 operações
diferentes. O 74LS881/HC881 é similar ao circuito integrado 181, mas tem a
capacidade de realizar algumas operações lógicas adicionais.
Memórias
Introdução
A principal vantagem dos sistemas digitais sobre os analógicos é a
capacidade de armazenar grandes quantidades de informações. Esta
capacidade é que torna os sistemas digitais tão versáteis e adaptáveis às
diversas situações.
Um dispositivo de memória conhecido é o flip-flop. Grupos de flip-flops,
chamados registradores, são elementos de memória de alto desempenho que
são muito usados nas operações internas de um computador. Um outro
dispositivo de memória pode ser um capacitor onde os dados são
armazenados como cargas.
Estes dois dispositivos são os principais elementos que formadores das
memórias dos sistemas digitais atuais.
Definição de Termos Básicos
Célula de memória – dispositivo ou circuito capaz de armazenar um bit.
Por exemplo, um flip-flop, um capacitor, etc.
Palavra de memória – grupo de bits (células) em uma memória que
representa instruções ou dados.
- Byte – conjunto de 8 bits.
- Capacidade – número de bits que podem ser armazenados em um
dispositivo de memória.
a) Um certo chip de memória semicondutora é especificado como 2K x 8.
Quantas palavras podem ser armazenadas neste chip? Qual é o tamanho
da palavra? Quantos bits esse chip pode armazenar no total?
R: A memória possui capacidade de 2K = 2 x 1024 = 2048 palavras. Cada
palavra tem 8 bits (um byte). O número total de bits é 2048 x 8 = 16384 bits.
b) Qual das memórias armazena mais bits: uma memória de 5M x 8 ou uma
memória que armazena 1M palavras com um tamanho de palavra de 16 bits?
R:
5M x 8 = 5 x 1048576 x 8 = 41943040 bits
1M x 16 = 1048576 x 16 = 16777216 bits
A memória de 5M x 8 armazena mais bits.
Densidade – termo relativo à capacidade. Se um dispositivo é mais denso
que outro ele tem capacidade de armazenar mais bits no mesmo espaço.
Endereço – número que localiza a posição de uma palavra na memória.
Tabela
Cada palavra tem um endereço binário específico
- Leitura ou busca – operação na qual uma palavra binária localizada numa
determinada posição (endereço) de memória é detectada e transferida para
outro dispositivo.
- Escrita ou armazenamento – operação na qual uma nova palavra é
colocada numa determinada posição de memória.
- Tempo de acesso – tempo necessário entre a memória receber uma nova
entrada de endereço e os dados se tornarem disponíveis na saída da
memória. Este parâmetro é usado para medição de desempenho da
memória.
- Ciclo de Memória – intervalo mínimo entre dois acessos sucessivos à
memória.
- Memória volátil – tipo de memória que necessita de aplicação de energia
para poder armazenar a informação.
- Memória de acesso aleatório (RAM) – memória onde o tempo de acesso
é o mesmo para qualquer posição.
- Memória de acesso seqüencial (SAM) – memória onde, para se localizar
uma determinada posição, é preciso passar por todos os endereços. Por
exemplo, fitas magnéticas.
- Memória de leitura e escrita (RWM) – memória que pode ser tanto lida
como escrita.
- Memória somente de leitura (ROM) – Memória onde as informações
armazenadas só podem ser lidas.
- Memória estática – tipo de memória onde os dados permanecem
armazenados enquanto existir energia, sem a necessidade de atualização
periódica da informação.
- Memória dinâmica – tipo de memória onde os dados permanecem
armazenados enquanto existir energia, mas com periódica atualização da
informação (Refresh).
Princípios de Operação das Memórias
Independente dos tipos de memórias existentes, o princípio básico de
operação é o mesmo:
- Selecionar o endereço a ser acessado (leitura ou escrita);
- Selecionar o tipo de operação: leitura ou escrita;
- Se a operação for escrita, fornecer os dados de entrada;
- Se a operação for leitura, os dados estarão disponíveis na saída;
- Habilitar a memória para que a operação seja concluída e desabilitar a
memória para que ela não responda às entradas de endereço e ao
comando de leitura/escrita.
Fig. Diagrama de uma memória de 32 x 4
Entradas de Endereços
Usando a memória mostrada na fig. 11-1, podemos notar que ela possui
5 entradas de endereço (A0 a A4). Logo existem 32 posições (2N, onde N é o
nº de bits) de armazenamento que podem ser ocupadas por palavras de 4 bits
(D0 a D3).
A Entrada ada R / W
Esta entrada controla a operação que deve ser realizada na memória:
leitura (R – Read) ou escrita (W – Write). Quando esta entrada estiver em “1”
ocorre a operação de leitura, quando em “0” ocorre a operação de escrita.
Algumas memória usam os símbolos W (escrita) ou WE (habilitação de
escrita) para identificar esta entrada.
Habilitação de Memória (ME)
A todo momento a memória possui níveis lógicos em suas entradas e o
pino de habilitação de memória impede que ela responda a estes níveis
lógicos, evitando assim um acesso errôneo nesta memória.
Esta entrada pode ser identificada como CE (chip enable) ou CS (chip
select).
Exemplo: Uma determinada memória tem uma capacidade de 4K x 8.
Quantas linhas de entrada/saída de dados ela tem?
R: Oito, pois o tamanho da palavra é oito bits.
Quantas linhas de endereço ela tem?
R: A memória armazena 4K = 4 x 1024 = 4096 palavras. Tendo em vista que
4096 = 212, logo a memória tem 12 bits (linhas) de endereço.
Qual é a sua capacidade em bytes?
R: Um byte tem oito bits, então esta memória tem uma capacidade de 4096
bytes.
Conexões da Memória com a CPU
As memórias RAM e ROM são interfaceadas com a CPU através de três
grupos de linhas de sinais ou barramentos: barramentos de endereço,
barramento de dados e barramento de controle.
- Barramento de endereços – barramento unidirecional que leva o endereço
proveniente da CPU para a memória para selecionar uma posição de
memória.
- Barramento de dados – barramento bidirecional que transfere dados entre
a CPU e a memória.
- Barramento de controle – barramento que leva sinais de controle da CPU
para a memória.
Exemplo:
Operação de escrita:
- A CPU coloca o endereço binário da posição de memória onde o dado deve
ser armazenado no barramento de endereços.
- A CPU coloca o dado a ser armazenado no barramento de dados.
- A CPU ativa as linhas de controle para a operação de escrita.
- A memória decodifica o endereço e localiza a posição onde o dado deve ser
armazenado.
- O barramento de dados é transferido para a posição de memória.
Operação de leitura:
- A CPU coloca o endereço binário da posição a ser lida da memória no
barramento de endereços.
- A CPU ativa as linhas de controle para operação de leitura.
- A memória decodifica o endereço e localiza a posição a ser lida.
- A memória transfere o dado armazenado nesta posição para o barramento
de dados, onde a CPU vai buscá-los.
Memória Somente de Leitura (ROM)
Introdução
A memória somente de leitura (ROM) é um tipo de memória onde os
dados nela armazenados não são alterados ou não mudam com freqüência.
Diagrama em Blocos de uma ROM
O diagrama típico de uma ROM é mostrado na fig.
Fig. Diagrama de uma ROM
O sinal de controle CS (seleção do chip) habilita a operação de leitura
da posição indicada no barramento de endereços. O dado é transferido para o
barramento de dados. Quando CS está em ALTO, as saídas da ROM ficam
desabilitadas (alta impedância).
Arquitetura de uma ROM
Uma ROM é constituída conforme a fig. 12-2.
Fig. Arquitetura interna de uma ROM (16 x 8)
- Matriz de registradores – onde os dados serão armazenados. Cada
registrador contém um número de células de memória igual ao tamanho da
palavra utilizada. Cada registrador tem duas entradas de habilitação (E):
ambas devem estar em ALTO para que os dados do registrador sejam
colocados no barramento de dados.
- Decodificadores de endereços – o barramento de endereço é separado
em duas vias: a primeira seleciona a linha e a segunda seleciona a coluna
onde o registrador se localiza.
Exemplo: Qual o registrador que será habilitado pelo endereço 1101? Que
endereço irá habilitar o registrador 7?
- Buffers de saída – o registrador que está habilitado pelas entradas de
endereço coloca seu conteúdo no barramento de dados. Estes dados vão
para os buffers de saída, que colocarão os dados na saída de dados
externa, desde que CS esteja em BAIXO. Se CS estiver em alto, os buffers
de saída ficarão em alta impedância.
12.4- Temporização de uma ROM
O atraso de propagação entre a aplicação dos sinais de entrada e o
aparecimento dos dados na saída, durante a operação de leitura, é chamado
tempo de acesso (tACC). Existe um outro parâmetro de temporização chamado
tempo de habilitação da saída (tOE), que representa o atraso entre a entrada
CS e a saída de dados válidos.
Fig.: Temporização de uma ROM
Tipos de ROM
- ROM Programada por Máscara – este tipo de ROM tem suas posições
escritas (programadas) pelo fabricante de acordo com as especificações do
cliente. Uma máscara (tipo de negativo fotográfico) é usada para informar
as conexões elétricas do chip. Este tipo de ROM é usado para armazenar
tabelas ou informações pré-programadas como códigos geradores de
caracteres de terminais de vídeo.
- ROM Programável (PROM) – tipo de memória ROM onde a programação é
feita apenas uma única vez pelo usuário. Esta programação consiste na
queima ou não de um fusível que corresponde a um bit de informação por
um equipamento chamado programador.
- ROM Programável e Apagável (EPROM) – tipo de memória ROM que
pode ser programada e apagada pelo usuário várias vezes. O processo de
programação consiste em aplicar certos níveis de tensões que provocam a
condução permanente ou não condução de transistores MOS. O
apagamento da memória é feito pela exposição dos circuitos internos à luz
ultravioleta através de uma “janela”.
- PROM Apagável Eletricamente (EEPROM) – é uma melhoria em relação
às EPROMs pois pode ser tanto programada como apagada eletricamente.
Assim, elas podem ser programadas e apagadas no próprio circuito, sem a
necessidade de luz ultravioleta ou um programador especial.
- CD ROM – tipo de armazenamento somente para leitura que utiliza
tecnologia laser. Os bits são definidos pela reflexão ou não de um feixe
laser apontado para um ponto do disco.
- Memória Flash – tipo de memória não-volátil, apagável eletricamente como
a EEPROM, mas com densidades e custos semelhantes aos da EPROM,
com o mesmo tempo de acesso de ambas.
Fig. Comparação entre tipos de ROM
Aplicações de ROMs
- Firmware – armazenamento de programas ou dados que devem estar
disponíveis no processo de inicialização de sistemas microprocessados. Por
exemplo, produtos como videocassetes, CD players, fornos microondas etc.
- Memória de Bootstrap – tipo de programa armazenado em uma ROM que
trata da inicialização do hardware de um computador. Após a inicialização,
o programa de bootstrap chama o sistema operacional e o computador
começa a executar o sistema operacional.
- Tabela de Dados – as ROMs são bastante utilizadas para armazenar
tabelas de dados que não variam. Por exemplo, tabela trigonométricas,
códigos ASCII, etc.
- Conversor de Códigos – este tipo de aplicação toma valores expressos
em um determinado tipo de código e produz uma saída expressa em outro
código. Por exemplo, o código BCD pode ser convertido para 7 segmentos
por uma ROM.
- Gerador de Funções – basicamente, um gerador de funções é um circuito
que produz formas de onda senóides, triangulares e quadradas. Uma ROM
com tabelas de valores armazenados e um conversor D/A podem ser
usados para gerar essas formas de onda.
- Armazenamento Auxiliar – dados podem ser armazenados em memórias
ROM apagáveis (EPROM, EEPROM, FLASH), tornando essas memórias
como alternativa aos discos magnéticos de armazenamento.
Memória de Acesso Aleatório (RAM)
Introdução
A memória de acesso aleatório (RAM) semicondutora é um tipo de
memória onde podemos tanto ler como escrever dados.
A principal vantagem de uma RAM é o fato de ela poder ser escrita e lida
rapidamente com a mesma facilidade. Uma desvantagem seria o fato da RAM
ser volátil, isto é, se a alimentação for desligada ela perde a informação.
Arquitetura de uma RAM
A arquitetura típica de uma RAM é mostrada na fig.
Fig. Organização Interna de uma RAM de 64 x 4
A fig. mostra uma RAM que armazena 64 palavras de quatro bits
(memória 64 x 4). Estas palavras têm endereços que vão de 0 a 63. Para
selecionar uma das 64 posições para escrita ou leitura, um endereço binário é
fornecido ao circuito decodificador. Cada endereço ativa uma saída do
decodificador, habilitando o seu registrador correspondente.
Operação de Leitura
A operação de leitura do conteúdo de um registrador é feita da seguinte
maneira:
- Coloca-se o endereço da posição de memória a ser lida no barramento de
endereços;
- Indica-se a operação de leitura através s da entrada R / W , colocando essa
entrada em ALTO;
- Habilita-se o chip de memória para concluir a operação colocando a entrada
CS em BAIXO.
Quando a memória está habilitada para leitura, os buffers de entrada
são desabilitados e os buffers de saída são habilitados e o conteúdo da
posição de memória selecionada é colocada nas quatro saídas de dados.
Operação de Escrita
A operação de escrita de um dado novo em um registrador selecionado
é feita do seguinte modo:
- Coloca-se o endereço da posição de memória a ser escrita no barramento
de endereços;
- Coloca-se o dado a ser escrito no barramento de dados;
- Indica-se a operação de escrita através da entrada R / W , colocando essa
entrada em BAIXO;
- Habilita-se o chip de memória para concluir a operação colocando a entrada
CS em BAIXO.
Quando a memória está habilitada para escrita, os buffers de entrada
são habilitados e os buffers de saída são desabilitados e o conteúdo da
posição de memória selecionada é perdida com a escrita do novo dado.
Quando a entrada CS (chip select – seleção de chip) está em ALTO
(memória desabilitada), tanto suas entradas como suas saídas estão em tristate
(alta impedância), evitando assim escrita ou leitura errônea neste chip.
RAM Estática (SRAM)
Este tipo de memória armazena os dados enquanto for mantida a
alimentação. Suas células são compostas de flip-flops, e por isso seu conteúdo
não é perdido enquanto houver alimentação.
Temporização de uma RAM Estática
Um computador utiliza RAMs como memórias principais e essas
memórias devem ser rápidas o suficiente para responderem aos comandos de
leitura e escrita que a CPU está constatemente realizando.
Ciclo de Leitura
O ciclo de leitura é mostrado na fig.
Fig. Ciclo de leitura de uma RAM estática
Onde:
trc = intervalo de duração do ciclo de leitura;
tacc = tempo de acesso à RAM;
tco = tempo que a saída da RAM leva para sair de alta impedância e ter um
dado válido;
tod = tempo decorrido entre a desabilitação da RAM e o instante que as saídas
da RAM vão para alta impedância.
Durante o ciclo de leitura, a CPU coloca um endereço no barramento de
endereços ligado à RAM. Este endereço corresponde à posição de memória
que deve ser lida.
A CPU sinaliza a operação de leitura através de um nível ALTO na
entrada ada R / W . A CPU habilita a memória colocando a entrada CS em nível
BAIXO. A RAM responde a isso colocando o conteúdo da posição endereçada
nas saídas de dados. Depois disso a memória é desabilitada (CS é ALTO) e
suas saídas ficam em tri-state (alta impedância).
Ciclo de Escrita
O ciclo de escrita é mostrado na fig.
Fig. Ciclo de escrita de uma RAM estática
Onde:
twc = intervalo de duração do ciclo de escrita;
tas = tempo para estabilização do barramento de endereços, antes de habilitar
a RAM;
tah = intervalo necessário para que o barramento de endereços permaneça
estável;
tw = tempo de escrita, onde CS e R / W ficam em BAIXO;
tds = tempo que os dados devem ser mantidos na entrada antes da
desabilitação de CS e R / W;
tdh = tempo que os dados devem ser mantidos na entrada depois da
desabilitação de CS e R / W.
No ciclo de escrita, a CPU coloca um endereço estável no barramento
de endereços. Nesse endereço o dado deve ser escrito. Ela coloca o dado a
ser armazenado no barramento de dados.
A CPU sinaliza a operação de escrita, colocando nível BAIXO na entrada
R / W . A CPU habilita a memória colocando a entrada CS em nível BAIXO. O
dado é transferido para a posição de memória indicada pelo endereço. A
memória é, então, desabilitada (CS é ALTO) e suas saídas ficam em tri-state.
Exemplos de Memórias Estáticas
- 6264 – 8K x 8
- 62256 – 32K x 8
RAM Dinâmica (DRAM)
Nesse tipo de memória a informação é armazenada em pequenos
capacitores. Como existe uma tendência normal dos capacitores se
descarregarem, há a necessidade de uma recarga (refresh – refrescamento)
desses capacitores. De tempos em tempos (tipicamente de 2 a 8 ms) o bit
armazenado no capacitor é atualizado.
Esse tipo de memória constitui a memória principal de um computador
por causa de sua alta capacidade e baixo consumo. Em relação à velocidade,
as RAM estáticas são mais rápidas.
A principal vantagem deste tipo de memória é a simplicidade na sua
construção, alcançando, assim, alto grau de integração.
Estrutura e Operação da RAM Dinâmica
Simbolicamente uma célula de memória dinâmica é constituída conforme
a fig..
Fig.: Representação simbólica de uma célula de memória dinâmica
Para escrever em uma célula, os sinais provenientes da decodificação
de endereços e da lógica de leitura/escrita fecham as chaves SW1e SW2,
mantendo SW3 e SW4 abertas. Isto conecta a entrada de dados a C. Um nível
lógico 1 carrega C e um nível lógico 0 o descarrega. Depois disso todas as
chaves são abertas, de modo que C fica desconectado do resto do circuito.
Mesmo desconectado, existe uma corrente de fuga que causa a descarga
gradual do capacitor e por isso o capacitor deve ser “refrescado”.
Para ler uma célula, as chaves SW2, SW3 e SW4 são fechadas, e SW1
permanece aberta. Isso conecta a tensão armazenada no capacitor ao
amplificador sensor. Assim, na saída do amplificador teremos o valor
armazenado no capacitor, que é atualizado via SW4 no momento da leitura.
Multiplexação de Endereços
A multiplexação de endereços é uma técnica que visa diminuir a
quantidade de entradas de endereços em uma DRAM. Isso permite que
DRAMs com altas capacidades ocupem espaços menores em placas de
computadores.
Essa multiplexação consiste em colocar no barramento de endereços a
metade superior do endereço (que localiza a linha) e colocar em BAIXO um
sinal chamado RAS (strobe do endereço da linha). Depois é colocado no
barramento de endereços a metade inferior do endereço (que localiza a coluna)
e colocar em BAIXO um sinal chamado CAS (strobe do endereço da coluna).
Após esse procedimento, a posição de memória é localizada e as operações
de leitura ou escrita podem ser realizadas.
Fig. Multiplexação de endereços em uma DRAM com 16 linhas de
endereço.
Refrescamento da DRAM
O refrescamento de uma DRAM é feito por circuitos externos ou no
próprio chip de memória. Existem dois métodos:
Refresh em rajada – a operação normal da memória é suspensa e cada linha
da DRAM é refrescada em seqüencia até que todas tenham sido refrescadas;
Refresh distribuído – o refrescamento é intercalado com as operações
normais da DRAM.
Tecnologia de RAM Dinâmica Usada em Computadores
Os tipos de DRAM existentes variam em função da capacidade,
velocidade, consumo, custo e versatilidade:
- SIMM (single-in-line memory module) e DIMM (dual-in-line memory
module) – são módulos de memória que permitem uma instalação rápida e
são padrões de diversos tipos de DRAMs. Os módulos SIMM e DIMM
definem apenas como a DRAM é “empacotada”.
- DRAM FPM (fast page module) – permite acesso mais rápido a qualquer
posição de memória dentro da “página” corrente. Normalmente, a maioria
dos dados gravados na memória são seqüenciais. Nesse tipo de DRAM o
endereço da linha (RAS) é enviado uma vez e o endereço da coluna (CAS)
é incrementado.
- DRAM EDO (extended data output) – é uma melhoria em relação às FPM.
Os dados são colocados na saída e a DRAM EDO já pode decodificar o
próximo endereço sem que esses dados tenham sido lidos;
- DRAM BEDO (burst EDO) – Possui uma arquitetura que permite alcançar
alta velocidade ao se acessar dados seqüenciais;
- SDRAM (synchronous DRAM) – são organizadas em dois bancos que são
acessados alternadamente utilizando um sinal de clock sincronizado com a
CPU. Desse modo essas memórias alcançam altas taxas de transferências.
Memórias com Funções Especiais
- Armazenamento de Dados com o Sistema Desligado – muitos
equipamentos armazenam seus dados em memórias RAM alimentadas com
baterias de reserva (NVRAM – RAM não-volátil);
- Memória Cache – tipo de memória de alta velocidade e baixa capacidade
de armazenamento que interage diretamente com a CPU. Na cache estão
contidos os dados mais requisitados pelo processador e isso evita um
acesso desnecessário na RAM.
- Memória First-In, First-Out (FIFO) – também conhecidas como buffers
para armazenamento temporário. Por exemplo, os dados são transferidos
em altas taxas do PC para a impressora. Como a impressão é mais lenta
que a transferência, esses dados devem ser armazenados em FIFOs e daí
podem ser impressos.
Expansão do Tamanho da Palavra e da Capacidade
Introdução
Em aplicações com memórias muitas vezes não dispomos de um chip
que nos forneça o tamanho da palavra ou a capacidade necessária. Para
conseguir isso devemos associar os chips de memória a fim de fornecer o
tamanho da palavra ou a capacidade desejada.
Expansão do Tamanho da Palavra
Neste tipo de arranjo, as memórias são combinadas de forma a fornecer
o tamanho da palavra desejada. Por exemplo, se determinado projeto
necessita de uma memória de 16 x 8 (16 palavras de 8 bits) e só possuímos
chips de memória de 16 x 4 (16 palavras de 4 bits) podemos associar duas
dessas memórias para obter a memória desejada, conforme a fig.
Fig.: Arranjo com duas RAM de 16 x 4 para fornecer um módulo de 16 x 8.
Cada memória da figura acima pode armazenar 16 palavras de 4 bits.
Como queremos armazenar 16 palavras de 8 bits, cada chip armazena metade
de cada palavra. Assim, a RAM0 armazena os 4 bits mais significativos de
cada uma das 16 palavras e a RAM1 armazena os 4 bits menos significativos
de cada uma das 16 palavras.
Podemos selecionar qualquer uma das 16 palavras aplicando-se o
endereço da palavra no barramento de endereços. As duas memórias
localizarão ao mesmo tempo a mesma posição de memória.
Se a operação for leitura, a, a entrada R / W deve estar em ALTO e CSem
BAIXO. A RAM0 coloca sua palavra de 4 bits na parte alta do barramento de
dados e a RAM1 coloca sua palavra de 4 bits na parte baixa do barramento de
dados. Desse modo o barramento de dados contém a palavra completa de 8
bits.
Se a operação for escrita, a, a entrada R / W deve estar em BAIXO e CS
em BAIXO. Os 4 bits mais significativos do dado serão escritos na RAM0 e os 4
menos significativos serão escritos na RAM1.
Expansão da Capacidade
Neste tipo de arranjo, as memórias são combinadas de forma que
possam armazenar mais palavras. Por exemplo, se precisamos de uma
memória que possa armazenar 32 palavras de 4 bits e temos chips de 16
palavras de 4 bits, podemos associá-las conforme a fig.
Fig. Arranjo de duas memórias de 16 x 4 para formar uma memória de 32 x 4.
Cada chip de memória armazena 16 palavras de 4 bits, resultando em
32 palavras de 4 bits. O barramento de dados é compartilhado entre as duas
memórias e por isso somente um chip de memória poderá ser habilitado de
cada vez.
Como a capacidade total é 32 x 4, devem existir 32 endereços
diferentes. Isso requer 5 linhas de barramento de endereços. A linha de
endereços mais significativa (A4) é usada para selecionar qual memória deve
ser acionada.
Tabela
Se desejarmos associar mais chips de memórias devemos tomar o
cuidado de selecionar apenas uma das memórias, já que o barramento de
dados é compartilhado. Para isso é usado um decodificador de endereços (por
exemplo, 74LS138) que, através de uma combinação em suas entradas,
seleciona apenas uma saída.
Por exemplo, se desejarmos associar 4 PROMs de 16 x 4 para gerar
uma capacidade de 64 x 4 devemos fazer conforme a fig.
Fig. Uso de 4 PROMs de 16 x 4 para obter uma capacidade de 64 x 4
Tabela
Download