Você está na página 1de 19

Memórias Semicondutoras

Memórias Semicondutoras
1 Introdução
Um circuito que permite o armazenamento de um ou mais bits por tempo
indeterminado é denominado memória. Tais bits podem ser acessados (procedimento de
leitura) ou substituídos (procedimento de escrita ou armazenamento).

2 Tipos de Memória
O desenvolvimento e expansão da tecnologia de fabricação de circuitos integrados
para armazenamento de dados determinaram o grande avanço dos computadores digitais.

Até 1970, as memórias de núcleo de ferrite eram de uso corrente. Entretanto, por
causa do seu alto custo, grande consumo e limitações em velocidade forma substituídas
pelas memórias semicondutoras que lideram o mercado até hoje.

3 Características gerais
A seguir apresentamos algumas características que podem ser usadas quando
queremos avaliar o desempenho de um determinado dispositivo de memória.

3.1 Densidade:
Número de bits armazenados por área física. Está relacionado à
capacidade total de armazenamento.

3.2 Velocidade:
Se refere à rapidez com que os dados podem ser acessados (lidos) ou
armazenados (escritos).

3.3 Potência:
Potência consumida ou dissipada pela memória.

3.4 Custo:
Custo para armazenamento por bit, ou seja, o valor do semicondutor
dividido pelo número de bits que pode armazenar.
Outras características são fornecidas especificamente por cada fabricante de
circuito integrado, tais como os sinais de comandos, parâmetros elétricos e imunidade a
ruídos.

4 Definições
No manuseio com memórias a semicondutor é comum o uso de expressões
referentes aos modos de operação, aos terminais de entrada/saída, à capacidade de
armazenamento e a sinais de controle.

Escrita (Write): Termo usado para o procedimento de armazenamento de uma informação


binária na memória. Em uma operação de escrita, a informação colocada nas entradas de
dados é copiada para uma posição ou endereço da memória.

Leitura(Read): Termo usado para o procedimento de obtenção, ou busca, de uma


informação armazenada em uma memória. Em uma operação de leitura, a informação é
armazenada na posição correspondente às entradas de endereço e copiada nos bits de saída.

Conteúdo ou palavra: Corresponde à informação – grupo de bits – armazenada em uma


determinada posição da memória.

Entradas de endereço (Address): Correspondem aos terminais do circuito integrado usados


para identificar um certa posição de memória.

Entradas de dados (Datas): Correspondem aos terminais do circuito integrado usados para
introdução dos dados a serem armazenados.

Saída de dados (Outputs): Correspondem aos terminais do circuito integrado onde serão
colocados os dados armazenados em uma dada posição da memória, em uma operação de
leitura.

Nibble: Termo usado para uma informação binária com 4 bits.

Byte: Termo usado para uma informação binária com 8 bits.

Kilobyte: Termo usado para um conjunto de 1024 bytes

Memória volátil: É aquela que perde o seu conteúdo na ausência de alimentação.

Memória Fixa: É aquela que não perde o seu conteúdo na ausência de alimentação.
Habilitação de chip (Chip enable): Uma entrada do chip que, quando polarizada
convenientemente, habilita ou inibe a operação do chip provocando uma redução na
potência dissipada e impedindo a operação escrita/leitura. Normalmente tais entradas são
designadas por CE (quando a habilitação é com nível 1) ou CE (quando a habilitação é
com nível 0). Nem todos os chips possuem este tipo de entrada.

Seleção do chip (Chip select): Uma entrada do chip usada para conectar ou desconectar –
colocar as saídas em alta impedância – as entradas/saídas a um barramento. Normalmente

tais entradas são designadas por CS (quando a habilitação é com nível 1) ou CS


(quando a habilitação é com nível 0). A maioria dos chips possue este tipo de entrada. Em
alguns circuitos as entradas CE e CS são combinadas em uma única entrada.

5 Classificação
O critério para a escolha das memórias disponíveis no mercado é descrito a seguir:

5.1 Quanto à forma de acesso


As principais formas de acesso à uma posição de memória podem ser do tipo
aleatório ou seqüencial.

Nas memórias do tipo aleatório, qualquer posição pode ser acessada aleatoriamente,
ou seja, pode ser lida diretamente sem a necessidade da leitura das demais posições. Caso,
por exemplo, das memórias RAM e ROM, descritas a seguir.

Nas memórias seqüenciais, uma posição não pode ser feita diretamente. Neste caso,
várias posições da memória são acessadas até a informação desejada, é o caso das fitas
magnéticas, dos registradores de deslocamento e das memórias de bolha magnética.

O tempo para ler uma informação em uma memória seqüencial depende da posição
de armazenamento.

5.2 Quanto à tecnologia


Normalmente as memórias são do tipo bipolar, MOS (semicondutor de óxido
metálico) ou CMOS (semicondutor de óxido metálico complementar).
No caso das memórias bipolares, encontramos com facilidade circuitos TTL
padrão, Schottky e ECL. No caso dos circuitos MOS, os de canal N são os mais usados por
favorecerem grande densidade a custo baixo. As memórias CMOS são mais lentas do que
as NMOS e bipolares, contudo são de menor consumo e maior imunidade ao ruído.

5.3 Quanto a capacidade de armazenamento


Este parâmetro está relacionado ao número total de bits ou palavras que a memória
pode armazenar. Por exemplo, uma memória com 1024 X 8 corresponde a uma capacidade
de 1024 palavras, cada uma com 8 bits, ou seja, com capacidade para 8192 bits.

5.4 Quanto ao tipo de saída


As saídas das memórias podem ser do tipo Totem-polem, Open collector ou Tree-
state.

As memórias do tipo Three-state são as mais usadas por permitirem, de forma


eficiente, a criação de bancos de memória descritos adiante.

6 Memórias RAM
As memórias RAM (Random Access Memory) são do tipo volátil e permitem o
acesso aleatório – para escrita ou leitura – a qualquer uma das suas posições.

São usadas para armazenar temporariamente as informações, tais como os


programas corrente do usuário. Também são conhecidas como memórias read/write
porque permitem a leitura e escrita.

O tempo de acesso para cada posição das memórias RAM é aproximadamente


igual.

A seguir apresentamos algumas características das memórias RAM.


6.1 RAM estática
Um dispositivo de armazenamento volátil com tecnologia bipolar ou MOS (NMOS
e CMOS) onde os bits são armazenados em uma estrutura tipo flip-flop.

6.2 RAM dinâmica


Um dispositivo de armazenamento volátil com transistores MOS, onde a estrutura
de armazenamento é capacitiva.

Neste caso, a informação se perde com o tempo, independentemente da manutenção


da alimentação – razão do nome dinâmica. Por esta razão, precisa passar periodicamente
por um processo de refrescamento (refreshing), onde as informações são lidas e regravadas
(recarga dos capacitores).

Isto implica na necessidade de circuitos externos específicos. Normalmente a


operação de refrescamento é feita durante uma operação de leitura, através de um circuito
projetado especificamente para este fim.

Apesar de a necessidade de refrescamento, a grande vantagem das memórias


dinâmicas sobre as estáticas é permitir uma grande densidade de fabricação dos chips –
quatro vezes maior que as estáticas – com baixo consumo que é da ordem de três a cinco
vezes menor do que as estáticas.

6.3 Arquitetura
Normalmente as memórias RAM são organizadas (Figuras 1 e 2) em forma de
matriz nXm – n palavras, cada uma com m bits, com os seguintes tipos de entradas:

1) m bits para saídas de dados;

2) m bits para entradas de dados;

3) p bits para entradas de endereços, tal que 2P = n;

4) Entrada R W para comando leitura/escrita;

5) Entrada tipo CS para comando Tree-state.

Basicamente os mesmos terminais existem nas memórias ROM – descritas adiante


– exceto o pino de leitura/escrita.
A Figura 2 apresenta uma forma matricial semelhante a um edifício com oito
andares e oito apartamentos por andar. Observe que a informação 10111011 está
armazenada no endereço 0, 01100110 no endereço 1 e assim sucessivamente.

Figura 1 – Memória RAM

(a) (b)

Figura 2 – Memória RAM – a)Memória 8X8 e b)Forma Matricial

6.4 Procedimento para leitura/escrita


Em operação normal, a memória deve permanecer na forma de leitura, onde
devemos ter:

1) A entrada R W , correspondente ao comando de leitura/escrita, em

nível 1 e CS em 0;
2) Níveis lógicos estáveis nas entradas de endereço e correspondentes à
locação de memória a ser lida.

3) As saídas apresentam uma cópia da informação armazenada na locação


desejada.

Para procedermos ao armazenamento (escrita) de uma informação em uma dada


posição devemos seguir os passos abaixo:

1) Colocar a entrada R W em nível 0;

2) Colocar CS em 1, ou seja, ativar o terceiro estado das saídas;

3) Colocar os dados a serem armazenados nas entradas de dados;

4) Colocar níveis lógicos estáveis nas entradas de endereço,


correspondentes à locação de memória onde queremos armazenar os
dados;

5) Colocar a entrada R W em nível 0, durante um intervalo de tempo


mínimo igual ao tempo de escrita da memória. Enquanto esta entrada
estiver em nível 0, as linhas de dados e de endereço devem permanecer
inalteradas;

6) Colocar a entrada R W em nível 1, retornando à posição de leitura;

7) Repetir os passos anteriores para o armazenamento nas demais posições


da memória.

Todos esses procedimentos devem ser executados de forma a garantir os


parâmetros no tempo especificados para cada memória.

7 Memórias ROM
As memórias ROM (Read Only Memory) são do tipo fixa e permitem o acesso
aleatório a qualquer uma das suas posições. Permite apenas leitura do conteúdo e é
destinada a guardar uma informação de forma permanente.

A informação é gravada pelo fabricante através da queima de diodos em uma


matriz (Figura 3) conforme solicitação do usuário. Podem ser do tipo bipolar ou MOS.
Quando a matriz é manufaturada, diodos são colocados em todos os cruzamentos.
Através de um processo próprio, os diodos são queimados convenientemente. Se, a cada
instante, apenas uma das linhas x,y,z ou w assume nível 1, os diodos destas linhas são
polarizados diretamente através dos resistores R.

Por exemplo, se XYZW = 1000, somente os diodos D1, D2, D3 e D4 serão


polarizados diretamente. As saídas S1, S2, S3 e S4 são iguais, respectivamente, às tensões
nos diodos diodos D1, D2, D3 e D4 menos 0,6V.

Para garantir que apenas uma das linhas X, Y, Z ou W assuma nível 1, podemos
usar um decodificador conforme a figura 4, onde A0 e A1 operam como linha de endereço.

Figura 3 – Matriz ROM 4X4

Figura 4 – Matriz ROM 4X4 com decodificador


7.1 PROM – ROM programável pelo usuário
Uma memória bipolar onde o armazenamento é feito pelo usuário – agilizando os
processos industriais – através da queima de diodo ou de um fusível colocado em série
com o diodo, ou seja, o armazenamento não ocorre durante a fabricação do chip.

O procedimento para a queima dos diodos é fornecido pelos fabricantes e específico


para cada circuito.

Note que, uma vez programada, a memória não pode ser apagada para correções ou
nova utilização.

7.2 ROM alterável


Memórias que podem ser programadas e reprogramadas pelo usuário, ou seja, em
casos de erros de programação o chip não precisa ser descartado, como nas memórias
PROM. A programação é feita pela aplicação de sinais elétricos convenientes em pinos do
chip e indicados pelos fabricantes.

7.2.1 EPROM – Erasable PROM


Um dispositivo com arquitetura similar às PROM, mas do tipo MOS, onde o
conjunto inteiro das informações armazenadas pode ser apagado através da aplicação de
raios ultravioletas em uma janela de quartzo localizada em uma das faces do chip.

É implementada usando o princípio de armazenamento do tipo Floating-gate


Avalanche Injection MOS (FMOS). Em um transistor PMOS, um potencial negativo
aplicado ao gate produz um canal de condução de cargas positivas (buracos) entre a fonte e
o dreno. No transistor FMOS, para causar a condução da fonte para o dreno e o
conseqüente armazenamento de cargas negativas no gate, devemos aplicar um pulso da
ordem de 25 a 50 volts na junção p-n (dreno/fonte). Cerca de 20 a 30% da carga
armazenada se perde depois de 20 anos.

E2PROM – Electrically Erasable ROM

Neste tipo de memória, tanto a gravação como a desgravação é feita por sinais
elétricos. O principal meio de implementação é o Metal Oxide Semicondutor NMOS. Na
verdade é um MOS modificado onde é usado um capacitor de carga que alcança um tempo
de armazenamento entre 20 a 30 anos.

Uma tensão elevada e da ordem de 20V entre porta e dreno provoca a indução de
cargas nas portas flutuantes que ali permanecem quando a tensão é retirada.

Uma tensão inversa apaga a carga armazenada. Desta forma, tanto a programação
como o apagamento pode ser feito por posições de memória. Não é preciso apagar toda a
memória para corrigir algum dado ou usar a memória com novos valores.

Parâmetros de tempos das memórias

Os tempos de chaveamento em uma memória são complicados. Tais tempos são


devido aos atrasos nas portas internas, às restrições impostas pelos tempos de manutenção
e preparação de flip-flops e ao grande número de terminais.

A Figura 5 apresenta os sinais em uma operação de escrita em memória RAM. Note


que a entrada CS garante a seleção do chip para nível 0, intervalo entre t0 e t7.

Como normalmente as linhas de endereço (Ai’s) e dados (Di’s) são múltiplas, não
podem ser representadas por um sinal em nível 0 ou 1. Por esta razão, quando válidas são
representadas por linhas cruzadas. Caso, por exemplo, dos dados válidos entre os instantes
t2 e t5.

Figura 5 – Sinais em uma operação de escrita


Normalmente os tempos são medidos à partir do instante em que um sinal
ascendente atinge 90% do nível 1 ou do instante em que um sinal descendente atinge 10%
do nível 0.

Os tempos da Figura 5 são assim definidos:

1) Tempo hold para dados (Thd = t5-t4)

Tempo mínimo de permanência das linhas de dados após pulso de escrita.

2) Tempo hold para endereços (The = t6-t4)

Tempo mínimo de permanência das linhas de endereço após pulso de escrita

3) Tempo hold para seleção (Ths = t7-t4)

Tempo mínimo de permanência das linhas de seleção após pulso de escrita

4) Largura do pulso de escrita (Te = t4-t3)

Duração mínima do pulso de escrita

5) Tempo de set-up para dados (Tsd = t3-t2)

Tempo transcorrido desde a estabilidade das linhas de dados e o início de


armazenamento.

6) Tempo de set-up para endereços (Tse = t3-t1)

Tempo transcorrido desde a estabilidade das linhas de endereços e o início de


armazenamento.

7) Tempo de set-up para seleção (Tss = t3-t0)

Tempo transcorrido desde a seleção do chip até o início de armazenamento.

8) Tempo de escrita

Intervalo de tempo decorrido desde o instante no qual as entradas de endereço e


de dados se estabilizam até o instante em que os dados são efetivamente
armazenados.

Na operação de leitura, tanto para as RAM como para as ROM, os sinais


envolvidos são como os da Figura 6.
Figura 6 – Sinais em uma operação de leitura

Os tempos da figura anterior são assim definidos:

1) Tempo hold para dados (Thd = t4-t3)

Intervalo de tempo em que os dados permanecem válidos na saída após uma


mudança de endereço.

2) Tempo de acesso (Tac = t2-t0)

Intervalo de tempo decorrido desde o instante em que as entradas de endereço


se estabilizam até o instante em que a informação fica disponível nas saídas da
memória, ou seja, tempo necessário para transferir uma informação de uma
locação da memória para as suas saídas.

3) Tempo de habilitação do chip (Tce = t2 – t1)

Tempo de resposta do circuito após a seleção do circuito.

8 Associação de Memórias
Podemos organizar vários chips de memória para obtermos um circuito equivalente
a uma memória com maior capacidade.

Esta associação pode ser de três tipos: vertical, horizontal e híbrida.


Tomando por base a memória 2114 (memória RAM estática com 1024 X 4 bits),
vamos obter associações com 2048 X 4 (associação vertical), 1024 X 8 (associação
horizontal) e 2048 X 8 (associação híbrida).

8.1 Associação Vertical: 2048 X 4


Como um chip 2114 possui 1024 X 4, o circuito com 2048 X 4 pode ser obtido da
associação de dois chips.

Os seguintes passos devem ser seguidos:

1) Interligação de entradas

Devem ser interligadas: as entradas de endereço e os pinos entrada/saída afins, e


os sinais de controle para escrita/leitura.

2) Novas linhas de endereço

O circuito equivalente vai precisar de 11 linhas de endereço para permitir o


acesso às 2048 (que é igual a 211) posições. Além disso, como os pinos de
entrada/saída são interligados, para não causar danos nos chips devemos
garantir que só um deles está ativo, enquanto o outro em terceiro estado (alta
impedância). Isto pode ser obtido garantindo que a cada instante só uma das
entradas assume 0, ou seja chip ativo. Um circuito decodificador executa esta
tarefa, conforme a Figura 7.

CS1
X Decodificador

CS2

X CS1 CS 2
0 0 1
1 1 0
Figura 7

Da tabela da Figura 7, temos CS1 = X e CS 2 = X . Ou seja, o circuito


decodificador é uma porta inversora.
3) Circuito Equivalente

Agora podemos usar os resultados dos passos anteriores, resultando na Figura 8.

Figura 8 – Memória 2048 X 4

8.2 Associação Horizontal: 1024 X 8


Como cada chip 2114 possui 1024, um circuito com 1024 X 8 também pode ser
obtido com dois chips, conforme Figura 9.

Neste tipo de associação, devemos interligar as entradas de endereço afins e os


sinais de controle de terceiro estado (alta impedância) e de escrita/leitura. Os pinos
entradas/saídas devem permanecer separados conforme a Figura 9.
Figura 9 – Memória 1024 X 8

8.3 Associação Híbrida: 2048 X 8


Como cada chip 2114 possui 1024 X 4, um circuito com 2048 X 8 será obtido da
associação de 4 chips.

Em primeiro lugar fazemos uma associação horizontal para 1024 X 8, conforme a


Figura 9. A seguir, usamos dois blocos 1024 X 8 em uma expansão vertical (Figura 8). A
Figura 10 apresenta o resultado da expansão.

Figura 10 – Memória 2048X8


Note que em uma expansão vertical sempre haverá a necessidade da criação de um
ou mais bits de endereços.

Nos exemplos anteriores, por ser necessário apenas 1 bit, um circuito inversor é
suficiente para controlar os CS’s e fornecer o bit A10. Contundo, quando há necessidade
de mais bits de endereço, em uma expansão vertical maior, um circuito decodificador pode
ser usado para fornecer os bits desejados.

Por exemplo, na Figura 11 é feita uma expansão para 4096 X 8. Usamos as quatro
primeiras saídas de um decodificador para comandar os CS' s . As duas entradas
significativas foram usadas como bits A10 e A11.

Figura 11 – Memória com 4096 X 8


8.4 Decodificando Endereço
As memórias precisam ser decodificadas para adequar suas linhas de endereço com as
do microprocessador. Um endereço de memória não pode endereçar dois dispositivos de
memória ao mesmo tempo. Como o número de vias de endereçamento de memória do
microprocessador é maior que dos dispositivos de memória é necessária a decodificação.

Porta AND: A primeira forma de se decodificar um endereço é usando portas and. Por
exemplo, para decodificar uma memória com 11 vias de endereço (2k) para um
microprocessador com 20 vias de endereço, sendo que a memória será endereçada entre
FF800h e FFFFFh. Para isso coloca-se os 9 bits mais significativos do endereço em uma
porta and e a saída invertida no CS, e os 11 restantes na própria memória. Assim enquanto
o endereço não estiver entre FF800h e FFFFh o dispositivo ficará em tri-state. Esse sistema
é muito pouco usado, pois para cada dispositivo de memória será necessário uma porta.

Decodificação por porta AND.

Decodificador de 3 para 8: O 74LS138 já foi usado em grande quantidade em


computadores. Esse dispositivo possui três entradas onde se coloca uma combinação
binária que irá ativar em nível baixo uma única saída. No caso do dispositivo estudado há 3
entradas para 8 saídas. Esse dispositivo, para facilitar o endereçamento, tem ainda mais três
pinos de habilitação (enables - E1, E2, e E3) . Só é habilitada a saída quando E1 e E2 estão
em baixo nível e E3 em alto nível.
A grande vantagem desse dispositivo é que com um único deles é possível endereçar 8
dispositivos diferentes.
Exemplo do uso do 74LS138.

Você também pode gostar