Memórias
Neste artigo iremos
entender como funciona um dos componentes de maior importância para a área da
informática denominados memórias. Estes componentes são dispositivos que
armazenam informações codificadas digitalmente que podem representar números,
letras, caracteres quaisquer, comandos de operações, endereços ou ainda
qualquer outro tipo de dado.
As memórias têm
grande utilidade no campo da informática, sendo utilizadas principalmente em
computadores e periféricos. Em resumo, as memórias acessam informações em
lugares denominados localidades de memórias. Para que seja possível acessar os
dados de modo eficiente, cada uma das localidades de uma memória possui um
conjunto de bits no que nos permite o seu acesso. A esse conjunto de bits damos
o nome de endereço. Esse conceito é fácil compreensão, pois como o próprio nome
diz, o conjunto de bits representa o endereço da localidade onde está
armazenada uma informação. Armazena dados para endereçamentos, programação e
para constituir o conjunto de programas internos para funcionalidade do próprio
sistema.
Classificação Das
Memórias
As memórias
existentes hoje no mercado sofreram por um processo de evolução. Diversas
características delas são derivadas do seu processo de construção. Para que
algumas características das memórias não decretassem sua inutilidade, elas
foram adaptadas de acordo com suas características para usos diferentes.
Na produção das
memórias a busca principal é a otimização da capacidade de armazenamento,
velocidade de transmissão de dados e a redução custo para produção. A busca de
um preço razoável para produção e popularização das memórias tornou o mercado
propenso a busca de novas tecnologias. Podemos classificar as memórias segundo
várias características, sendo as principais:
Principais características das
memórias
|
Acesso ou “tempo de acesso”: A informação é acessada através de endereços, que são um conjunto de
bits associados às posições de memória. O tempo de acesso de uma memória é o
tempo necessário desde a entrada de um endereço até o momento em que a
informação apareça na saída. No caso de memórias de leitura/escrita, também é
o tempo para a informação ser gravada. É possível ter acesso a uma dada
posição de memória de duas maneiras diferentes:
1.
Acesso sequencial – É preciso percorrer todas as posições anteriores até chegar à posição
desejada. Assim, o tempo de acesso depende da posição.
2.
Acesso aleatório – É possível que se chegue ao endereço diretamente. O tempo de acesso
independe então da posição.
|
Volatilidade: As memórias voláteis são aquelas que,
perdem as informações armazenadas ao se desligar a alimentação. Um exemplo
típico são as RAM. As memórias não voláteis são aquelas que mesmo sem
alimentação, continuam com as informações armazenadas. Exemplos são as memórias
magnéticas e as memórias ROM, PROM e EPROM.
|
Troca de dados: No que se refere à troca de dados com outros componentes do
sistema, as memórias podem ser de escrita/leitura (ex: RAM) ou memórias de
apenas leitura (ex: ROM).
|
Tipo de armazenamento: Quanto ao tipo de armazenamento as memórias
classificam-se em:
1.
Estáticas – São aquelas em que, uma vez
inserido, o dado lá permanece.
2. Dinâmicas – Necessitam que a informação seja re-inserida periodicamente, caso
contrário esta informação é perdida
|
Estrutura geral e
organização de uma memória
Apesar das
especificidades de cada dispositivo eles são compostos em geral de uma mesma
estrutura. As principais funções que devem ser executadas é a entrada e saída
dos dados e o endereçamento. Para acessar as localidades, o bloco possui uma
série de terminais de entrada de endereços, estes terminais são ligados a um
conjunto de fios denominado barra de
endereços (address bus). Para a entrada e saída dos dados, o bloco
possui uma série de terminais ligados à barra
de dados (data bus). Além disto, o bloco possui terminais de
controle ligados à barra de controle (control bus). Este sistema está
representado na Figura 1.
1.
Barra de endereços: Responsável pelo endereçamento de um sistema típico com
microprocessador.
2.
Barra de dados: Entrada e saída de dados.
3.
Barra de controle: Terminais de controle.
![]() |
A Figura 1 ainda destaca que a barra de dados é bidirecional, isto indica que a memória em questão é do tipo leitura/escrita. |
As fornecedoras de
inovação e tecnologia sempre buscam aumentar a quantidade de dados armazenados.
Neste meio utilizamos a notação Nxm, onde o “N” letra indica o número de
localidades de memória e o “m” indica o número de bits de informação por
localidade. Por exemplo:
1.
256x8
2.
1Kx16
3.
128Mx32
A designação K
(kilo) significa um fator 210 = 1024, e a M (mega) significa um
fator de 220 = 1048576. Por exemplo, a memória 128Mx32 possui
128x1048576=134217728 localidades com 32 bits em cada uma, necessitando de 27
terminais para endereçamento.
Exemplo:
1.
64 K x 8: 64 x 1024 = 65.536
localidades, com 8 bits (1 byte) em cada uma, necessitando de 16 terminais para
endereçamento.
2.
2 M x 16: 2x 1.048.576 = 2.097.152
localidades, com 16 bits, necessitando 21 terminais para endereçamento.
A palavra de
endereço, definida como o conjunto de níveis lógicos necessários para o
endereçamento de uma determinada localidade de memória para o acesso ao dado.
Para facilitar a escrita da palavra de endereço, bem como a sua utilização em programação,
é comum transcrever-se este conjunto de bits para o hexadecimal, principalmente
no caso de memórias de alta capacidade (agrupando-se os bits em grupos de 4).
Memórias ROM e
arquitetura
Características principais
|
1. Permitir somente
a leitura dos dados;
|
2. Memória apenas de
leitura;
|
3. Acesso aleatório;
|
4. Não-voláteis (não
perdem seus dados armazenados com o desligamento da alimentação);
|
5. Armazenamento de
programas de sistemas operacionais em computadores e outros sistemas
digitais;
|
6. Podem ser
utilizadas em circuitos de geração de caracteres e para construção de um
circuito combinacional qualquer;
|
7. Podem ser
consideradas como circuitos combinacionais, pois apresentam as saídas de
dados em função das combinações entre as variáveis de entrada
(endereçamento).
|
![]() |
Figura 2 - memória ROM
|
A Figura 2 é um
bloco representativo de uma memória ROM, com terminais e barramentos conhecidos e mais um terminal de
controle, para habilitação de pastilha ou chip.
O terminal de
controle para habilitação ou seleção de pastilha, CS é, na realidade, uma
entrada de nível lógico para ativar ou não as saídas da ROM.
Se aplicarmos a
esta entrada um nível lógico 0, as saídas serão habilitadas, ou seja, serão
internamente comutadas para fornecer os dados, conforme funcionamento normal de
endereçamento.
Porém, se
aplicarmos um nível 1, estas serão desabilitadas, assumindo estados de alta
impedância, liberando a barra de dados para utilização por outros dispositivos
presentes no sistema controlado normalmente por microprocessadores.
O traço sobre o CS,
indica que a habilitação da pastilha é feita com nível 0, sendo esta uma forma
de nomenclatura muito utilizada na prática.
A escolha da
ativação por nível 0 deve-se, também, ao fato desta proporcionar maior
imunidade ao ruído, pois, em situação contrária, haveria maior susceptibilidade
para o acionamento dos blocos dentro do sistema, frente a este fatos transiente
indesejado.
Arquitetura das Memórias ROM
A Figura 3 mostra a
arquitetura básica de uma ROM genérica, com os respectivos terminais e
barramentos de entrada e saída.
![]() |
Figura 3 - Arquitetura de uma memória ROM
|
O primeiro bloco
consiste num decodificador de endereços (gerador de produtos canônicos),
responsável por ativar (fornecer nível 1) um fio de saída por vez, em função do
endereçamento.
![]() |
Figura 4 - Circuito representativo de uma memória ROM
|
O segundo bloco é constituído por uma
matriz de dados, que é um arranjo de linha e colunas que, através de um elo de
ligação, possibilita a gravação de dados pelo fabricante e conseqüentemente
leitura pelo usuário.
Para a saída dos dados, a memória possui um conjunto de chaves, que
conforme habilitação do terminal CS, possibilita a conexão das saídas (nível
0), ou as deixa em alta impedância (nível 1), desconectando-as da barra de
dados do sistema.
A Figura 4 é uma
releitura do circuito da memória ROM. A matriz de dados é construída por um
conjunto de diodos (formando uma série de portas OU). A presença do diodo dá
origem ao nível “1” na localidade, e a sua ausência, ao nível “0”.
Memórias PROM
Características principais
|
1. Permitem o armazenamento
dos dados pelo próprio usuário, porém feito de modo definitivo;
|
2. Após a
programação a PROM torna-se uma ROM;
|
3. O princípio
básico de programação ou armazenamento de dados em uma PROM, é o de destruir,
através de nível de tensão conveniente especificado pelo fabricante, as
pequenas ligações semicondutoras existentes internamente nas localidades onde
se quer armazenar a palavra de dados, conforme endereçamento feito;
|
4. Após a instalação
o processo é irreversível, não sendo possível nenhuma alteração;
|
5. Não-volátil;
|
6. Acesso aleatório
e de apenas leitura
|
Memórias EPROM
Características principais
|
1. ROM programável e
apagável;
|
2. Permitem a
programação de modo semelhante à das PROMs;
|
3. Podem ser
normalmente apagadas, mediante banho de luz ultravioleta (15 a50 minutos);
|
4. Também conhecidas
com UVPROM (Ultraviolet PROM).
|
Identificação dos terminais:
1.
A0 - A10: barra de
endereços;
2.
D0 – D7:
barra de dados;
3.
CE: habilitação da pastilha (função
de ativar o bloco através de nível 0, e quando em nível 1 deixa desativado;
4.
OE: habilitação da saída (função de
habilitar ou desabilitar apenas o barramento de saída, agindo semelhante ao
CE);
5.
PGM: habilitação da programação;
6.
Vpp: tensão de
programação.
Memórias EEPROM
Características principais
|
1. Avanço
tecnológico em relação às EPROMs;
|
2. As alterações de
programação são efetuadas pelo próprio sistema no qual a memória esteja
inserida;
|
3. Permitem que o
apagamento dos dados seja feito “eletricamente”, isoladamente por palavra de
dados, sem necessidade de reprogramação total. A escrita de uma palavra de
dados, alterando a programação, é obtida através do endereçamento e
respectiva aplicação de palavra nos terminais da barra de dados, isto com o
terminal OE em nível 1, e o de habilitação da escrita W, em nível 0, dentro
de um ciclo de tempo mínimo, especificado em manual pelo fabricante do CI.
|
Memórias RAM
Características principais
|
As memórias RAM,
permitem a leitura e escrita dos dados;
|
Possuem acesso
aleatório ou randômico. Vem daí o nome (Random Access Memory);
|
São voláteis,
pois perdem seus dados armazenados com o desligamento da alimentação;
|
Possuem um tempo
de acesso muito reduzido;
|
Quanto ao
armazenamento, são estáticas (SRAM) ou dinâmicas (DRAM);
|
As SRAM’s
estáticas possuem como célula básica de memória o flip-flop;
|
As DRAM’s possuem
circuitos mais simples, porém necessitam de re-inserção de dados periódica
(refresh), sua célula básica armazena cada dado por efeito capacitivo de cada
micro-elemento semicondutor interno, por isto tem a vantagem de alta
capacidade de armazenamento por circuito integrado.
|
![]() |
Figura 7 - Modelo de Memória SRAM
|
A Figura 7 vemos um bloco de memória SRAM, com terminais e barramentos de
endereçamento e de dados e mais um terminal de controle R/W de dupla função,
para possibilitar a leitura ,
ou escrita dos
dados nas localidades endereçadas.
![]() |
Figura 8 - Circuito representativo RAM
|
Para escrever um dado, selecionamos a
célula, o que é feito por um circuito de endereçamento que faz SEL = 1 e
passamos o sinal de controle para escrita.
Depois aplicamos o dado no terminal D, que está então configurado como entrada.
A Figura 8 mostra um bloco de memória e para melhor entender o
funcionamento desta tecnologia as entradas desde bloco é resumido na tabela:
![]() |
Figura 9 - Bloco de memória
|
SEL
|
R/W
|
D
|
0
|
X
|
Tri-State
|
1
|
0
|
Escrita
|
1
|
1
|
Leitura
|
Arquitetura das Memórias RAM
Vamos, por exemplo, pensar numa RAM
estática 4x4 como a mostrada na Figura 10:
Figura 10 - Arquitetura de uma memória
4x4
Já vimos que um
bloco de memórias assim especificado contém 4 posições cada uma com quatro
bits. Podemos notar que o bloco é composto de um decodificador de endereços com
dois terminais (A1 e A0) que ativará a entrada SEL
da linha de células interligadas horizontalmente selecionada. Os terminais de
dados (D) estão interligados, mas por posicionamento do bit na palavra de
dados, isto porque no endereçamento de cada conjunto através de SEL, os outros
não endereçados estão na situação de alta impedância (tri-state), portanto
desconectados do fio comum. Vemos também as entradas interligadas
de modo a se controlar simultaneamente a leitura ou escrita para todas as
posições.
Vamos, por exemplo,
armazenar o dado 516 (01012), na posição 116 endereçada
por 01. Se a pastilha não estiver selecionada,o nível 0 na saída das portas E após o inversor, faz com que SEL=0 em todas as
células fazendo com que elas fiquem em alta impedância. Se a pastilha foi
selecionada,e o endereçamento é (A1=0 e A0=1), a segunda linha do
seletor de endereços estará em 1 fazendo SEL=1 para a segunda linha de células.
Com o controle em 0 (escrita) aplicamos os dados nos terminais, agora configurados como entradas
(D3=0, D2=1, D1=0 eD0=1) sendo
estes então armazenados pelas células.
Com a passagem
de para 1, para leitura, os dados irão permanecer armazenados, mesmo se a célula for
de-selecionada com. Vale ainda lembrar mais uma vez que a informação será perdida caso se desligue
a alimentação da pastilha. Este mesmo processo de escrita pode ser estendido
para outras localidades, para isto, basta endereçar, passar para 0 e aplicar os dados às entradas D.
![]() |
Figura 11 - Modelo RAM
|
Para a leitura de uma informação
devemos selecionar a pastilha e com igual a 1, endereçar a posição, obtendo desta forma a informação nos terminais D, que
agora estão configuradas como saídas. O bloco que acabamos de descrever é
mostrado na Figura 10.
Expansão da Capacidade da Memória RAM
Vamos estudar agora
como podemos expandir a capacidade de uma memória RAM, que é algo que ocorre frequentemente
na prática, ressaltamos que o processo vale também para outras memórias. A
expansão pode ser obtida pela palavra de dados, pelo aumento de posições, ou
ainda por ambos, conforme a situação. Vamos começar ilustrando o aumento pela
expansão da palavra de dados. Vamos formar uma RAM 256x8 à partir de dois
blocos de 256x4. A expansão é mostrada na figura abaixo.
Notamos que os
terminais de endereçamento (A7 a A0), de seleção de
pastilha e de controle de leitura/escrita são interligados, já estas operações são comuns aos dois blocos na nova memória. A
barra de dados, agora é composta pela associação da barra de cada memória (4
bits) resultando em uma palavra de dados maior (8 bits), aumentando assim a
capacidade de memória. Nesta nova memória, o endereço da posição inicial é 0016 (000000002),
e o final FF16 (111111112).
Conclusão
As memórias descritas neste artigo são aquelas que são utilizadas como
memória principal. As memórias secundárias como o HD, por exemplo, possuem um
funcionamento mecânico diferente e características próprias.
O desenvolvimento de memórias RAM de alta velocidade de endereçamento,
acesso de leitura e escrita propiciou aos desenvolvedores produzirem softwares
cada vez mais poderosos. O custo destes materiais para serem construídos ainda
é muito alto, infelizmente, tecnologias de alto desempenho e com alta
capacidade de armazenamento muitas vezes são inviáveis. Visando amenizar estes
problemas foram criadas técnicas de caching e vários outros algoritmos que
possibilitam o melhor uso das memórias.
Quer fazer download deste artigo?
Deixe seu comentário, e compartilhe com seus amigos!
Memórias
Reviewed by Vinicius dos Santos
on
05:55:00
Rating:

Post a Comment