MEMÓRIAS SEMICONDUTORAS
MEMÓRIAS SEMICONDUTORAS Componente Curricular: Eletrônica Industrial
Habilitação Profissional Técnica de Nível Médio de Técnico em Eletrônica
0
MEMÓRIAS SEMICONDUTORAS
MEMÓRIAS SEMICONDUTORAS
I.
INTRODUÇÃO
Uma das características dos circuitos digitais é a possibilidade de armazenamento dos dados em dispositivos eletrônicos, com processamento rápido e versátil, além da grande capacidade de armazenamento em pequenos volumes. As memórias semicondutoras, implementadas em pastilhas (chips), têm essas características e são utilizadas em praticamente todos os processos digitais, tais como computadores, processadores industriais, CLP's, e outros circuitos que utilizam da lógica digital. Os chips de memória são formados por células onde são armazenados os dados digitais (bits), podendo estas células armazenar 1 ou mais bits, dependendo de suas características e aplicações. As células são organizadas em posições formando uma matriz, com endereços definidos através de linhas (rows) e colunas (columns), que facilitam o acesso para gravação e leitura dos dados. Os circuitos elétricos utilizados para a armazenagem dos dados lógicos têm tecnologias diversas, dependendo de fatores como velocidade de acesso, consumo de energia, quantidade de dados necessários no chip e aplicação da memória. A memória pode utilizar desde uma simples matriz de diodos, onde os dados são permanentes, servindo apenas para leitura, passando por circuitos do tipo flipflop, registradores lógicos, e armazenamento de cargas elétricas em capacitores ou transistores de tecnologia MOS. Estes últimos, aceitando que os dados sejam gravados e regravados nas células. Qualquer que seja a aplicação das memórias ou processo utilizado na sua construção, elas podem ser definidas genericamente por um processo funcional em que as células de armazenagem são acessadas e controladas por sinais digitais que definem o endereço lógico dessas (um código digital para as linhas e colunas) e por sinais digitais que controlam as operações que serão realizadas, por exemplo, se a célula irá simplesmente fornecer a informação armazenada ou se irá receber nova informação para armazenagem. Os dados processados (entrada ou saída) têm o seu caminho próprio nesse processo funcional.
1
MEMÓRIAS SEMICONDUTORAS
No diagrama, distinguimos 3 vias de acesso que podem fazer parte do processamento dos dados: •
Barramento de controle (control bus): via para os sinais que fazem o controle de operação da memória, como habilitação, leitura ou gravação de dados e controle de endereçamento.
•
Barramento de endereços (address bus): portas da memória que recebem o código binário de endereçamento referente à posição onde o dado será processado.
•
Barramento de dados (data bus): via de comunicação entre o sistema e a memória em que os dados lidos ou fornecidos para gravação ficam disponíveis.
II.
ESTRUTURA INTERNA DE UM BLOCO DE MEMÓRIAS Geralmente o chip de memórias conta com as células configuradas por uma matriz de
posicionamento, identificado por linha e coluna. A informação sobre a posição desejada é feita pelo sistema utilizador através de um código binário, cuja combinação será convertida para o endereçamento interno do bloco (número da linha e da coluna) por um circuito decodificador da própria memória. As operações que o sistema requer da memória são informadas através do barramento de controle, sinais estes interpretado por outro circuito decodificador interno que orienta as operações elétricas no módulo de memória.
2
MEMÓRIAS SEMICONDUTORAS
III.
ENDEREÇAMENTO DOS DADOS O acesso à posição para gravação ou leitura de dados, como visto, será informado pelo sistema
através de um código binário, sendo este interpretado e convertido em endereço interno pela memória. Para que isso seja possível, os códigos enviados pelo sistema e a decodificação no bloco de memória devem ser compatíveis, seguindo uma tabela do decodificador da memória.
Com decodificadores distintos: O bloco de memória pode conter um decodificador para as linhas e outro decodificador para as colunas, sendo que cada decodificador tem um conjunto de portas de acesso, onde os códigos para linha e coluna serão informados simultaneamente. A quantidade de linhas que podem ser atendidas por um decodificador de linha com "L" portas será 2L, da mesma maneira que um decodificador de coluna com "C" portas atende a 2C colunas. Assim esse módulo será capaz de direcionar dados para 2L X 2C posições diferentes. A tabela funcional a seguir, relaciona as combinações binárias possíveis (códigos) nas portas de endereçamento do decodificador de linhas com a coordenada "linha", no posicionamento das células de memória.
3
MEMÓRIAS SEMICONDUTORAS
CÓDIGO 1 2 3 4 5 ... L 2 -1 L 2
A L-1 0 0 0 0 0 ... 1 1
DECODIFICADOR DE LINHA COM "L" PORTAS PORTAS DE ENDEREÇAMENTO ... A2 A1 ... 0 0 ... 0 0 ... 0 1 ... 0 1 ... 1 0 ... ... ... ... 1 1 ... 1 1
A0 0 1 0 1 0 ... 0 1
ROW 0 1 2 3 4 ... L 2 -1 L 2
Complementando o endereçamento, esta tabela funcional relaciona as combinações binárias possíveis (códigos) nas portas de endereçamento do decodificador de colunas com a coordenada "coluna", no posicionamento das células de memória. DECODIFICADOR DE COLUNA COM "C" PORTAS CÓDIGO 1 2 3 4 5 ... C 2 -1 C 2
A C-1 0 0 0 0 0 ... 1 1
... ... ... ... ... ... ... ... ...
PORTAS DE ENDEREÇAMENTO A2 A1 0 0 0 0 0 1 0 1 1 0 ... ... 1 1 1 1
A0 0 1 0 1 0 ... 0 1
COLUMN 0 1 2 3 4 ... C 2 -1 C 2
O esquema mostra o endereçamento do módulo de memória com decodificadores independentes para Linha e Coluna, a partir das tabelas apresentadas.
4
MEMÓRIAS SEMICONDUTORAS
Com decodificador único: O bloco de memória também pode conter um único decodificador para os códigos de linhas e colunas, sendo que neste caso os códigos do endereço de linha e do endereço de colunas devem ser informados um de cada vez, necessitando de um controle sobre o tipo de código que está sendo informado. Esses códigos de controle, RAS e CAS, habilitam o endereçamento para as linhas ou colunas respectivamente. Nesta forma de decodificação as posições acessadas por um decodificador de "N" portas serão em número de 2 2xN. Esta tabela funcional mostra a relação das combinações binárias possíveis (códigos) nas portas de endereçamento do decodificador único para as linhas e colunas, mediante controle externo pelo sistema, selecionando as coordenadas "linha" ou "coluna", conforme o código informado e o controle desejado. DECODIFICADOR ÚNICO COM "N" PORTAS - PARA COLUNAS E LINHAS PORTAS DE ENDEREÇAMENTO CONTROLE CÓDIGO ROW A N-1 ... A2 A1 A0 RAS CAS DESABILITADA 1 0 ... 0 0 0 0 1 DESABILITADA 2 0 ... 0 0 1 0 1 DESABILITADA 3 0 ... 0 1 0 0 1 DESABILITADA 4 0 ... 0 1 1 0 1 DESABILITADA 5 0 ... 1 0 0 0 1 DESABILITADA ... ... ... ... ... ... 0 1 N DESABILITADA 2 -1 1 ... 1 1 0 0 1 N DESABILITADA 2 1 ... 1 1 1 0 1 1 0 ... 0 0 0 1 0 0 2 0 ... 0 0 1 1 0 1 3 0 ... 0 1 0 1 0 2 4 0 ... 0 1 1 1 0 3 5 0 ... 1 0 0 1 0 4 ... ... ... ... ... ... 1 0 ... N N 2 -1 1 ... 1 1 0 1 0 2 -1 N N 2 1 ... 1 1 1 1 0 2 RAS: "Row Adress Strobe" CAS: "Column Adress Strobe"
COLUMN 0 1 2 3 4 ... N 2 -1 N 2 DESABILITADA DESABILITADA DESABILITADA DESABILITADA DESABILITADA DESABILITADA DESABILITADA DESABILITADA
O esquema, apresentado na página seguinte, mostra o endereçamento do módulo de memória
com decodificador único para Linha e Coluna, a partir da tabela apresentada.
5
MEMÓRIAS SEMICONDUTORAS
IV.
PROCESSAMENTO DOS DADOS O trabalho a ser realizado com os dados será informado ao módulo da memória através do
Barramento de Controle com sinais apropriados, que podem ativar ou desativar a memória, e determinar se os dados serão gravados ou copiados da posição ativa. Esses sinais de controle são conhecidos por: CE: Chip Enable - Ativação ou não da memória OE: Output Enable - Leitura de dados WE: Write Enable - Gravação de dados Podemos representar o controle exercido por esse barramento pela tabela seguinte: BARRAMENTO DE CONTROLE CE
OE
WE
SITUAÇÃO DA MEMÓRIA
1
1
0
LEITURA ATIVADA
1
0
1
GRAVAÇÃO ATIVADA
1
0
0
MEMÓRIA DESABILITADA
0
X
X
MEMÓRIA DESABILITADA
6
MEMÓRIAS SEMICONDUTORAS Assim, na situação de "Leitura" e "Memória Ativada", os dados presentes na posição de endereçamento atual serão copiados para o Barramento de Dados do módulo, ficando disponível ao sistema. Quando "Gravação" e "Memória Ativada" estiverem definidas no Barramento de Controle, os dados que estiverem registrados no Barramento de Dados serão transferidos para a posição do endereçamento definido, substituindo os dados que lá estiverem. O Barramento de Dados deve ser composto de linhas de registro para acessar a mesma quantidade de bits disponíveis em cada célula ou posição do bloco de memória. No exemplo abaixo, o bloco dispõe de 2 registradores para armazenamento de bits em cada célula, necessitando de um barramento capaz de processar 2 dígitos simultaneamente.
V.
CAPACIDADE DO BLOCO DE MEMÓRIAS A quantidade de bits que uma memória pode armazenar depende do número de posições
disponíveis e a quantidade de registradores em cada uma dessas posições. Assim, a capacidade em bits de uma memória é determinada e especificada por: posições x bits em cada posição. Consideremos como exemplo um módulo com 256 posições, tendo em cada um deles 2 registradores. Este módulo conta com 256 x 2 bits de memória, representado por 256x2 ou pelo total de 512 bits. 7
MEMÓRIAS SEMICONDUTORAS Vejamos também um módulo que conta com 8 portas de endereçamento para as linhas e igual número para as colunas, tendo em cada posição possível, 8 bits de armazenamento: •
Posições: 8 portas no decodificador de linhas permite endereçar 28=256 linhas, resultando da mesma forma 256 endereços para as colunas. Assim teremos 65536 posições de memória (256 linhas x 256 colunas);
•
Total de bits: Como cada posição conta com 8 bits de armazenamento, então concluímos que este módulo pode ser especificado por 65536x8, ou pelo total de 524288 bits;
•
Esta especificação também pode considerar outras formas de representação: sendo que cada posição processa simultaneamente uma palavra de 8 bits (1 byte - 1B), pode-se representar a sua capacidade como sendo de 65536 bytes (65536 B). Ou ainda utilizar o múltiplo K, que equivale a 210 (ou 1024). Este módulo fica especificado por 64 Kbytes (64 KB), ou também por 64Kx8, ou ainda 512 Kbits;
•
VI.
Observar bem a diferença entre bit e byte: 1 byte = 8 bits.
CLASSIFICAÇÕES E TIPOS DE MEMÓRIAS Existem tipos diferentes de memória que podem ser classificadas de acordo com as aplicações e modo
de funcionamento. A seguir são apresentadas algumas dessas variações e características de destaque. Memórias somente para leitura: Estas memórias, conhecidas pela sigla ROM (Read Only Memory), são gravadas com informações que serão lidas repetidas vezes, como uma rotina de programação de máquina ou rotinas do hardware de um computador. As informações nela contidas são gravadas durante a sua fabricação e não aceitam novas gravações. Esta família de memórias tem variantes que permitem que a gravação seja feita após a fabricação do módulo, ou até mesmo, permitem regravações após terem os dados "apagados". Nesse segmento encontramos o modelo PROM (Programmable Read Only Memory), que será gravada com dados pelo usuário, após a sua fabricação, sendo esses dados permanentes após a operação. Já o modelo EPROM (Erasable Programmable Read Only) permite que os dados nela contidos sejam apagados (todos os dados são apagados no procedimento) pelo efeito de luz ultravioleta sobre a pastilha semicondutora e regravada com novos dados. A possibilidade de regravação desse tipo de memória também aparece no modelo EEPROM (Electrically Erasable Programmable Read Only Memory), porém utilizando um sinal elétrico de tensão mais elevada que o normal para "limpar" os dados existentes. 8
MEMÓRIAS SEMICONDUTORAS Os procedimentos feitos na EEPROM serão executados pelo próprio circuito a que elas pertencem, sem a necessidade de remoção (como acontece com a EPROM), além de ser um procedimento mais rápido. As memórias do tipo ROM e variantes são classificadas como "Não voláteis", significando que a manutenção dos dados nela contidos não depende de alimentação elétrica. Memórias para gravação e leitura: As memórias utilizadas para armazenar dados transitórios durante o processamento digital possibilitam a gravação e a leitura de dados sem restrições, sempre comandados pelo próprio sistema onde estão integradas. Essas memórias, conhecidas pela sigla RAM (Random Access Memory), permitem a gravação e leitura dos dados individualmente, de maneira direta e aleatória, orientados pelos códigos de endereçamento e por controles específicos, como visto anteriormente. Os circuitos elétricos utilizados nessas memórias semicondutoras necessitam de alimentação elétrica constante para garantir a manutenção de dados, sendo, portanto, classificadas como "Voláteis". Ainda, dependendo da tecnologia utilizada para o registro dos dados lógicos, a memória pode ser definida como RAM Estática, que utiliza registradores do tipo flip-flop nas células de armazenagem de dados, mantendo-os inalterados até nova gravação e enquanto existir a alimentação elétrica. Nessa linha de classificação se apresenta a RAM Dinâmica, em que o armazenamento dos dados é feito pela capacitância existente nos transistores do tipo MOS, que compõem as células de memória. A RAM Dinâmica, além de exigir a continuidade da alimentação elétrica para a armazenagem dos dados, requer uma renovação periódica da gravação de todos os dados, já que a tecnologia utilizada não mantém a carga capacitiva por longos períodos. A manutenção dos dados é obtida por ciclos periódicos de leitura e regravação de todos os dados do módulo, denominado por Refresh. Essa tecnologia, apesar da necessidade do cliclo de refresh, apresenta células de memória mais simples, permitindo a obtenção de maior capacidade de armazenamento nos chips e menor consumo de energia elétrica.
9