Descrição
As características essenciais para a definição do comportamento das memórias e os principais tipos de memória utilizados em sistemas digitais.
PROPÓSITO
Reconhecer os principais tipos de memória e suas características, bem como sua importância para compreensão dos sistemas digitais modernos.
OBJETIVOS
Módulo 1
Identificar a interface básica de uma memória e as principais classificações
Módulo 2
Listar os principais tipos de memória e suas características
Vídeo Introdutório
Bem-vindo ao estudo dos dispositivos de memória.
MÓDULO 1
Identificar a interface básica de uma memória e as principais classificações
Conceitos básicos
Para armazenar informação, há dois fatores importantes: o primeiro obviamente é a informação a ser guardada; o segundo, tão importante quanto o primeiro, é o local onde a informação está armazenada. Não adianta guardar um objeto e depois não saber onde ele está! Com o agravante de que em sistemas digitais não temos como “procurar”.
O “local” onde uma informação é gravada é chamado de endereço, e em cada endereço fica guardado um agrupamento de bits (palavra).
Existem duas formas usuais de se especificar a quantidade de informação que uma memória pode armazenar:
- Quantidade de localidades x tamanho da palavra em bits
- Quantidade total de bits (ou bytes) armazenada
Exemplo
Uma memória 128x16 possui 128 localidades, e em cada localidade são guardados 2 bytes. Assim, a capacidade dessa memória é de 2048 bits ou 256 bytes.
Um mapeamento dela pode ser visto na tabela abaixo:
Endereço | Dado | ||
---|---|---|---|
binário | hexadecimal | decimal | |
111 111b | 7Fh | 127 | 1100 0011 |
111 1110b | 7Eh | 126 | 0000 0000 |
111 1101b | 7Dh | 125 | 1100 0011 |
... | ... | ||
000 0001b | 01h | 1 | 0101 1111 |
000 0000b | 00h | 0 | 0111 1101 |
A organização em ordem crescente ou decrescente de endereços é uma escolha do usuário. Logicamente, os dados mostrados são apenas um exemplo. Devido a forma de construção dos endereços, a quantidade de localidades de uma memória é sempre uma potência de 2.
Atenção
Cada endereço é designado por um número binário.
Como as memórias, em geral, possuem uma grande quantidade de localidades, é usual escrever os endereços utilizando números hexadecimais. Assim, reduzimos a quantidade de dígitos a ser escritos em relação à notação, utilizando números binários e, caso necessário, podemos realizar a conversão direta entre decimal e binário, na qual cada bit hexadecimal corresponde a 4 bits binários.
Dígito hexadecimal | Sequência binária |
---|---|
0 | 0000 |
1 | 0001 |
2 | 0010 |
3 | 0011 |
4 | 0100 |
5 | 0101 |
6 | 0110 |
7 | 0111 |
8 | 1000 |
9 | 1001 |
A | 1010 |
B | 1011 |
C | 1100 |
D | 1101 |
E | 1110 |
F | 1111 |
Devido a memória sempre utilizar potências de 2, os multiplicadores Kilo, mega, giga, tera etc. são em função da base 2 e não da binária.
Assim, 1 kB de endereços não são 1000 endereços, e sim 210 = 1024 endereços. A seguir, veja os multiplicadores mais usuais:
Multiplicador | Quantidade correspondente |
---|---|
Kilo (kB) | 210 |
Mega (M) | 220 |
Giga (G) | 230 |
Tera (T) | 240 |
Note que, com a evolução da tecnologia, surgem novos dispositivos com capacidade de armazenamento cada vez maior, popularizando o uso de multiplicadores maiores. Atualmente, é comum falarmos de discos rígidos externos da ordem de alguns terabytes e já se pesquisa tecnologias para desenvolver hds da ordem de petabytes (250).
Um parâmetro tão importante quanto à capacidade de armazenamento de uma memória é o tempo de acesso.
O tempo de acesso de leitura é o tempo que a memória precisa para, após receber um endereço, disponibilizar a saída. Se a memória permitir a escrita, então ela também possui um tempo de acesso de escrita; o tempo necessário para que, dado um endereço e uma entrada de dados, a memória possa gravar esse dado e ficar novamente disponível para uma nova escrita ou leitura.
Saiba mais
Muitas vezes, esse parâmetro é chamado de velocidade de acesso ou taxa de transferência de dados, e indicado pela quantidade de leituras/escritas que a memória pode executar em 1 segundo.
Outros fatores, menos lembrados, mas também importantes, são:
Densidade
Quantidade de informação (bits) que podemos armazenar por unidade de área.
Consumo energético
A energia que a memória consome em sua operação; lembrando que circuitos elétricos dissipam energia majoritariamente, como o calor, o qual necessita ser dissipado.
Por último, destacamos um fator muito importante: o custo. Em engenharia, não adianta termos a melhor solução técnica se esta é economicamente inviável. Dessa forma, o custo sempre será um fator a ser levado em consideração
Você sabia
Se tratando de memória, geralmente referenciamos o custo com a capacidade, assim temos o custo por kilobyte, megabyte etc.
Dica
Pesquise sobre o preço dos pentes de memórias RAM do computador para ter uma ideia de como consideramos tais características.
Repare que o valor está diretamente relacionado à sua capacidade (2 GB, 4 GB, 8 GB) e à sua frequência (que determina a taxa de acesso). Perceba também que o tipo de memória (DDR3, DDR4 etc.) e a capacidade total máxima que pode ser utilizada dependem também da compatibilidade com a placa-mãe e o sistema operacional, respectivamente.
Revisando, as características gerais de uma memória são:
- Capacidade
- Tempo de acesso ou velocidade
- Densidade
- Consumo
- Custo
Calculando a capacidade de uma memória
Veja um exemplo prático no vídeo a seguir:
Classificação
Além dos aspectos gerais, as memórias possuem algumas características específicas de acordo com sua classificação. As principais são:
- Estrutura de acesso
- Volatilidade
- Suporte à escrita
- Armazenamento
Quanto à estrutura de acesso, as memórias podem ser sequenciais ou aleatórias.
Em memórias de acesso sequencial, quando se quer acessar um endereço, é necessário passar pelas localidades intermediárias entre o endereço atual e o endereço pretendido. Neste tipo de memória, o tempo de acesso é variável, pois depende da distância entre o endereço atual e o endereço que se deseja acessar.
Em memórias de acesso aleatório, qualquer endereço pode ser acessado diretamente. Nas memórias aleatórias, o tempo de acesso é constante e, em geral, pequeno. Esse tipo de memória é tão importante que elas são batizadas com um nome específico — RAM, do inglês Random-Access Memory. Se você gosta de computadores, certamente já leu a respeito desse tipo de memória, afinal a quantidade de RAM é um requisito mínimo comum para muitos programas e jogos de computador, além de ser uma informação importante a respeito das placas de vídeo.
A volatilidade se refere à capacidade da memória reter as informações que foram gravadas ao ser desligada (cortada a alimentação).
As memórias voláteis perdem as informações armazenadas quando desligadas. Isso ocorre, pois, o elemento responsável por armazenar as informações nesse tipo de memória são, em geral, componentes eletroeletrônicos, como flip-flops ou capacitores. Um exemplo de memória volátil são as memórias RAM.
Memórias não voláteis mantém as informações gravadas mesmo quando a energia é desligada.
Existem memórias que permitem a leitura e a escrita, como as RAM (afinal, qual seria a utilidade de uma memória volátil que não permitisse a escrita).
Há também memórias que não podem ser escritas, apenas lidas. Nessas memórias, a informação é fixa. Elas vêm gravadas de fábrica ou podem ser gravadas uma única vez e, após isso, permitem apenas leituras. Como por exemplo, o DVD-R.
Em relação ao tipo de armazenamento, as memórias podem ser estáticas ou dinâmicas.
Nas memórias estáticas, uma vez inserida a informação, ela pode permanecer indefinidamente naquela localidade (enquanto a memória estiver energizada), nesse tipo de memória, as células são circuitos naturalmente biestáveis, como flip-flops.
Já nas memórias dinâmicas, as células são pequenos capacitores que, devido a correntes de fuga, perdem sua carga, sendo necessário realizar uma operação de repotencialização (refresh) periodicamente para que a informação armazenada não seja perdida.
Durante o período em que o refresh está ocorrendo, a memória fica inacessível para a leitura e escrita, fazendo com que memórias dinâmicas sejam mais lentas em relação as estáticas. Por outro lado, como um capacitor é um circuito muito mais simples que um flip-flop, as memórias dinâmicas possuem uma densidade de integração muito maior e menor consumo energético e, consequentemente, baixa geração de calor.
Interface Básica
Como você pode imaginar, a interface básica de uma memória consiste em três barramentos: o de endereço, o de dados e o de controle, conforme indicado na figura abaixo:
O barramento de endereço (address bus) passa a localidade a ser acessada.
Os sinais presentes no barramento de controle (control bus) dependem do tipo de memória sendo utilizada, o que será abordado no próximo módulo.
Por último, o barramento de dados (data bus) é bidirecional, no caso de memórias que permitem leitura/escrita, o que foi indicado na Figura 1 com o barramento com setas em ambas as extremidades.
Exemplo
A figura abaixo apresenta o esquemático de uma memória de 16 bits conectada ao barramento de endereços de um computador. Determine a faixa de endereços usada pela memória:
Solução
A memória só ficará habilitada se o sinal de chip select estiver ativado, ou seja . Logo, para memória estar operante, precisamos da combinação A12 = 1, A11 = 0 e A10 = 0. Os demais bits de endereço são inseridos normalmente na memória.
O endereço inicial de operação da memória é 1000 0000 0000b, que corresponde à sequência necessária para ativar o seguida pelo menor valor que os outros bits de endereço podem assumir.
O endereço final é montado com a sequência necessária para ativar o chip select seguido pelo maior valor que pode ser formado com os sinais inseridos na entrada de endereços da memória. Logo, o endereço final de operação dessa memória é 1001 1111 1111b.
Então, a faixa de endereços usada por essa memória é de 1000 0000 0000b a 1001 1111 1111b, ou, em hexadecimal, 800h a 9FFh.
Associação de Memórias
Vamos analisar como associar memórias para gerar o efeito de uma memória de maior capacidade. Essa técnica é bastante utilizada; por exemplo, um pente de memória RAM de computador possui diversos circuitos integrados de memória e, geralmente, na placa-mãe podemos colocar vários pentes de memória RAM para aumentar a capacidade do sistema.
Para os exemplos, a seguir, consideraremos uma memória com suporte à escrita de 256x8 com dois sinais de controle:
- O habilita o circuito integrado da memória. Se esse sinal estiver em nível baixo, a memória processa os comandos de leitura/escrita normalmente, caso contrário, ela ignora qualquer comando e deixa as saídas de dados em alta impedância.
- O habilita a escrita se estiver em nível baixo, caso contrário é realizada uma leitura.
Impedância
Impedância elétrica ou simplesmente impedância (quando, em domínio de circuitos ou sistemas elétricos, não houver possibilidade de confusão com outras possíveis acepções de impedância), é a oposição que um circuito elétrico faz à passagem de corrente elétrica quando é submetido a uma tensão.
Fonte: WikipédiaAtenção
Os comandos citados fazem parte de um exemplo fictício bastante simplificado. Diferentes memórias têm diferentes sinais de comandos. Ao projetar um circuito real, o engenheiro deve analisar cuidadosamente as folhas de dados e as instruções dos fabricantes dos componentes que for utilizar.
Exemplos
Exemplo 1
A partir de duas memórias 256x8, conforme descritas acima, projete uma memória de 256x16 com os mesmos sinais de controle.
Inicialmente, é necessário definir a quantidade de endereços. Para que tenhamos 256 localidades, precisamos de 8 bits para endereçamento, pois 256 = 28. A fim de aumentar a quantidade de bits em cada localidade, basta conectarmos as entradas de endereços e de controle das memórias entre si. Dessa forma, elas sempre executarão os mesmos comandos, seja de leitura ou de escrita, simultaneamente e em relação a localidades de mesmo endereço. Por fim, basta definir qual memória armazenará os oito dígitos menos significativos dos dados (D7 D6 ... D0) e a outra, naturalmente, armazenará os oito mais significativos (D15 D14 ... D8).
Exemplo 2
A partir de duas memórias 256x8, conforme descritas acima, projete uma memória de 512x8 com os mesmos sinais de controle.
Note que, para a memória na parte de cima, é necessário que e A8 = 1 , mas para a memória na parte de baixo estar ativa, precisamos que e A8 = 0 . Ou seja, o bit de endereço A8 seleciona qual memória estará ativa.
Além disso, as linhas de dados das duas memórias são conectadas entre si, mas não se corre o risco de haver curtos, pois as lógicas utilizadas para acionar o chip select de cada memória garante que apenas uma delas possa estar ativa por vez.
Exemplo 3
Quantas memórias 256x4 são necessárias para montar uma memória com 1024 localidades e palavra de 1 byte?
Para expandir a quantidade de localidades, precisamos associar 4 memórias de maneira similar ao que vimos no exemplo anterior. Assim teremos uma memória 1024x4.
Agora, para expandir o tamanho da palavra de 4 bits para 8 bits (1 byte), precisaremos de duas memórias 1024x4, utilizando conexão semelhante à vista em um exemplo anterior.
Então precisamos de 2 memórias 1024x4, e cada uma dessas memórias é constituída por 4 memórias 256x4. Logo, para construir uma memória 1024x8 são necessárias 8 memórias 256x4.
Verificando o aprendizado
ATENÇÃO!
Para desbloquear o próximo módulo, é necessário que você responda corretamente a uma das seguintes questões:
O conteúdo ainda não acabou.
Clique aqui e retorne para saber como desbloquear.
MÓDULO 2
Listar os principais tipos de memória e suas características
Memória ROM
O termo ROM é originado do inglês read-only memory, e significa memória somente de leitura. A informação que será gravada na ROM é determinada no momento da fabricação, os dados fazem parte da arquitetura do circuito integrado da memória. Dessa forma, a ROM é uma memória não volátil, retendo sua informação mesmo quando a alimentação é desligada.
Apesar de chamadas de memória, as memórias ROM são um circuito combinacional, pois, dado uma entrada (endereço), a saída (dado) está definida
Por ser um circuito muito simples, a memória ROM não possui muitos sinais de controle, em geral ela possui apenas uma entrada habilitadora (OE, output enable) que, se ativada, habilita a saída e, caso contrário, deixa a saída em alta impedância.
A representação genérica de uma ROM é mostrada na figura abaixo:
Para explicar a arquitetura interna de uma ROM, usaremos como exemplo uma ROM com 2 linhas de endereço e 2 bits por localidade. Ela implementará a seguinte tabela:
Endereço | Dados | ||
---|---|---|---|
A1 | A0 | D1 | D0 |
0 | 0 | 0 | 1 |
0 | 1 | 1 | 1 |
1 | 0 | 0 | 0 |
1 | 1 | 1 | 1 |
A implementação desta ROM pode ser feita da seguinte forma:
O decodificador, nesta arquitetura, também chamado de decodificador de endereços, faz com que uma linha fique em nível lógico alto (1), de acordo com o endereço selecionado.
A linha ativa faz com que as portas OU a ela conectadas tenham saída 1, se a porta OU não estiver conectada a essa linha então ela apresentará saída 0
Por último, os buffers de três estados são responsáveis por habilitar ou não a saída.
Como essa memória requer um projeto de circuito integrado de acordo com os dados a serem gravados, seu uso é restrito a aplicações específicas, no qual a memória deverá ser produzida em larga escala (grande quantidade) para justificar os custos do projeto e setup da linha de produção.
A seguir, estudaremos algumas variações da ROM que tornam essa tecnologia acessível ao usuário comum, são elas a PROM, EPROM, EEPROM, SPROM.
PROM
PROM é uma memória programável somente leitura.
EPROM
EPROM é uma memória programável apagável somente de leitura.
EEPROM
EEPROM é uma memória não volátil utilizada para armazenar pequenas quantidades de dados que necessitam ser salvos quando a energia é removida.
SPROM
SPROM é uma memória em série programável somente de leitura.
Memória PROM
A PROM é, resumidamente, uma ROM que pode ser programada, uma única vez, pelo usuário. Note que isso não torna a PROM uma memória com suporte à escrita e à leitura, dado que a gravação dela faz parte do setup e não do funcionamento normal da memória.
Saiba mais
A PROM, bem como as demais variações da ROM, são memórias sem suporte à escrita, ou seja, apenas de leitura.
A programação da PROM é realizada em alta tensão, geralmente em torno de 20 Volts, na entrada de dados de acordo com o endereço em que se quer gravar. A sobretensão queima pequenos fusíveis semicondutores, fazendo com que aquele bit seja zero no endereço determinado. Ou seja, queimamos os fusíveis onde queremos que a memória armazene o valor 0.
Note que a lógica para gravar, em que se aplica a alta tensão, é a inversa da leitura: se quisermos 1 não aplicamos nenhum sinal de gravação, se quisermos 1 aplicamos a sobretensão. E que, antes da gravação, todos os dados guardados na memória PROM são 1. O procedimento exato para gravação (nível de tensão, tempo em que a sobretensão deve ser mantida etc.) é fornecido pelo fabricante da memória.
Dica
São vendidos kits dedicados para realizar a gravação de memórias PROM e demais variações de ROM, facilitando o procedimento para o usuário. Atualmente, há fornecedores que oferecem o serviço de pré-gravação: o comprador envia o arquivo de dados que deseja registrado junto ao pedido de compra e já recebe o circuito integrado da memória gravado.
A seguir, vemos a arquitetura de uma PROM “virgem” — que ainda não foi gravada — e de uma após o procedimento de gravação:
Nessa arquitetura, os diodos garantem que as diferentes linhas do decodificador (Y3, Y2, Y1, Y0) não entrarão em curto, uma vez que apenas 1 diodo pode conduzir por vez em cada linha de dados (D2, D1, D0).
Os resistores conectados ao aterramento garantem que se não houver diodos conduzindo a linha de dados ficará em nível lógico baixo (0).
Diodo
Componente eletrônico semicondutor composto de um cristal de Silício ou Germânio, cujas faces são dopadas por materiais distintos durante sua fabricação.
Saiba mais
Tal configuração de resistores é conhecida como pull-down.
Exemplo
Qual é a tabela-verdade da memória PROM representada na Figura 8:
Solução
Na resolução consideraremos OE=1, caso contrário todos os bits de saída estão em alta impedância.
Se A1 A0=00, então a linha Y0 está ativa, e nesse caso D2=1 (fusível intacto), D1 e D0 estarão em nível baixo, dado que os seus fusíveis estão rompidos.
Repetindo esse raciocínio para cada combinação possível de A1 A0 podemos montar a tabela:
Endereço | Dados | |||
---|---|---|---|---|
A1 | A0 | D2 | D1 | D0 |
0 | 0 | 1 | 0 | 0 |
0 | 1 | 1 | 0 | 1 |
1 | 0 | 0 | 0 | 1 |
1 | 1 | 0 | 1 | 0 |
O funcionamento da memória PROM
Entenda mais sobre memória PROM no vídeo a seguir:
Memória EPROM
A memória EPROM (Erasable Programmable Read Only Memory) surgiu como uma evolução tecnológica da PROM.
A EPROM, além de permitir a gravação, permite também que os dados sejam apagados, retornando a memória ao estado inicial
A exposição a raios ultravioleta faz com que os fusíveis semicondutores da memória voltem a conduzir. Para permitir a incidência dos raios ultravioleta no circuito, o encapsulamento da EPROM possui uma janela transparente a essa radiação.
Há três detalhes importantes sobre o processo de apagamento da memória EPROM:
Ao ser exposta aos raios ultravioleta, a memória é apagada como um todo, não é possível realizar o apagamento seletivo de endereços de memória.
Devido a luz solar conter radiação ultravioleta, a janela da EPROM deve ser tampada, geralmente com um adesivo, para evitar o apagamento acidental dos dados.
O processo de apagar os dados não é rápido, levando tipicamente de 15 a 50 minutos.
As EPROMs eram bastante utilizadas em circuitos digitais que precisavam de um setup inicial e na memória de microcontroladores.
Exemplo
Armazenar a BIOS (Basic Input Output Interface) do computador e a programação das antigas TVs de tubo de raios catódicos.
Com os avanços tecnológicos no campo das memórias, as EPROMs foram substituídas na maioria das aplicações pelas memórias EEPROM e FLASH, que veremos adiante. A EEPROM ainda é utilizada quando é necessária uma pequena quantidade de memória. Como exemplo de dispositivos que ainda possuem EEPROM, podemos citar microcontroladores utilizados pelos sistemas Arduino.
Arduino
Arduino são plataformas de hardware livre baseadas em microcontroladores, com uma linguagem de programação padrão C/C++, projetada para ser acessível mesmo para pessoas sem conhecimento de eletrônica.
Memória EEPROM
EEPROM (Electrically Erasable Programmable Read Only Memory), é uma memória também chamada E2PROM. Ela é uma evolução tecnológica da EPROM e as principais características que a diferenciam são:
- A memória é apagada através de um sinal elétrico.
- Pode-se escolher qual endereço deve ser apagado, não sendo necessário resetar a memória para seu estado inicial.
Tais características permitem o projeto de sistemas capazes de reprogramar trechos da memória EEPROM durante seu funcionamento.
Na figura, abaixo, vemos a representação de uma memória EEPROM, com os sinais de controle usuais:
As funções dos sinais de controle são:
Se desativado, desabilita as saídas e as deixa em alta impedância.
Se desativado, além de deixar a saída em alta impedância, coloca a memória em modo de espera (stand-by), reduzindo o seu consumo de energia. Porém, ao se ativar o chip enable para usar a memória, é necessário esperar o tempo de inicialização do circuito.
Utilizado para realizar a escrita de uma nova informação em determinado endereço de memória. Para realizar essa operação, o endereço desejado e a palavra que se deseja gravar devem ser inseridos em seus respectivos barramentos, enquanto os sinais de controle CE e () devem estar ativados e o OE desativado. Esses sinais devem ser mantidos estáveis por determinado tempo mínimo, especificado pelo fabricante na folha de dados do dispositivo.
Assim como a ROM, a PROM e a EPROM, a EEPROM também possui acesso aleatório, sendo não volátil.
Atenção
Apesar de suportar a leitura e a escrita, ela é classificada como de apenas leitura.
“Em nível de classificação, a memória E2PROM pode causar polêmica em um item, pois apesar de permitir a escrita e a leitura de dados, faz parte da família das memórias apenas de leitura (ROM). O nome EEPROM, no entanto, deve ter sido atribuído por questões históricas do desenvolvimento tecnológico na área, o mesmo ocorrendo com outras memórias.”
(CAPUANO, 2014)
Memória SPROM
A SPROM (Serial Programmable Read Only Memory) é uma memória PROM associada a um contador, de forma que não há barramento de endereços, sendo o endereçamento realizado pelo contador. A figura a seguir apresenta o diagrama de uma SPROM.
O sinal de saída CEO é ativado quando o contador atingir o seu valor máximo de contagem e o sinal CE está ativado. Nessa situação, a saída e a contagem são automaticamente desabilitadas (a saída é colocada em alta impedância). Esse sinal é utilizado no cascateamento de memórias SPROM, visando aumentar a quantidade de localidades disponíveis.
Atenção
Nesse tipo de conexão, os sinais de CLK, CLR, OE e as saídas de dados das memórias são conectados entre si, e a saída CEO da primeira memória é conectada à entrada CE da segunda.
Dessa forma, quando a primeira memória atinge o valor máximo da contagem, automaticamente a sua saída e contagem são desabilitadas, e a segunda memória é habilitada (saída e contagem).
A SPROM é utilizada em sistemas que utilizarão todos os dados armazenados de uma vez, sequencialmente, como na configuração de FPGAs.
Memória FLASH
As memórias FLASH utilizam estrutura interna diferente das memórias da família ROM, sendo outro tipo de tecnologia. Porém, em funcionalidade, elas se assemelham à EEPROM, permitindo a operação de apagamento eletricamente.
Entretanto, diferentemente da EEPROM, em que cada palavra deve ser apagada por vez, a memória FLASH permite que blocos de dados (também chamados de páginas) sejam apagados por vez. Como a operação de apagar uma informação é demorada, a memória FLASH consegue obter maiores velocidades de operação, ao mesmo tempo que não exige uma reprogramação completa após o apagamento, como a EPROM.
Atenção
Em termos de classificação, a memória FLASH é não volátil, apresenta suporte à leitura e à escrita, além de acesso aleatório.
Além de mais rápida, o custo por bit da memória FLASH é muito menor do que a memória EEPROM, permitindo que a FLASH a substituísse na maioria das aplicações e viabilizando uma série de outras, como o HD em estado sólido (SSD) e o pen-drive.
A principal desvantagem das memórias FLASH é que elas permitem uma quantidade limitada de ciclos de escrita, fazendo com que as células de memória fiquem inutilizadas depois de certo tempo.
Comentário
Com o avanço da tecnologia, a quantidade de ciclos permitida está cada vez maior, minimizando esse problema.
Atualmente, memória FLASH é amplamente utilizada, sendo a memória em estado-sólido não volátil dominante no mercado.
Exemplo
Pen-drives, BIOS do computador, memória de programa de microcontroladores, cartões de memória de celulares e câmeras, HDs de estado sólido, são apenas algumas de suas muitas aplicações.
Memória RAM
Até o momento vimos memórias não voláteis, e como essas memórias guardam a informação mesmo na ausência de energia elétrica, não faz sentido as classificarmos como estáticas ou dinâmicas, haja vista que obviamente seriam estáticas. Agora discutiremos memórias voláteis, que perdem todas as informações ao serem desconectadas da alimentação.
Ainda em relação as memórias não voláteis, as memórias RAM apresentam velocidades de acesso muito maiores, sendo geralmente utilizadas para armazenar os dados temporários durante a execução de programas e como memória intermediária entre as unidades de armazenamento secundário (não voláteis) e o processador.
Atenção
Apesar da sigla RAM indicar apenas que são memórias de acesso aleatório (também chamado de randômico), essas memórias também possuem suporte à escrita e à leitura, além de serem voláteis.
Estudaremos os dois principais tipos de memória RAM: as Dinâmicas (DRAM) e as estáticas (SRAM), sem entrar em detalhes dos diversos subtipos existentes em cada uma dessas classificações.
SRAM
As SRAM (Static RAM) ou RAM Estática, são memórias de altíssima velocidade, cujo elemento básico são circuitos biestáveis (latches ou flip-flops).
Na figura abaixo vemos a representação genérica de uma SRAM:
Os sinais de controle utilizados na SRAM são similares aos utilizados nas memórias já estudadas neste tema:
Se estiver desabilitado coloca as saídas em alta impedância e impede que sejam realizadas escritas.
Quando desabilitada, coloca as linhas de dados em alta impedância.
Essa entrada controla se a memória deve realizar uma operação de escrita ou leitura. Para realizar escritas fazemos , e para fazer leituras utilizamos .
Utilizando esses sinais, podemos montar a tabela de operação básica de uma SRAM:
Sinal de controle | Operação | ||
CS | OE | ||
0 | X | X | Hold, saídas em alta impedância e não é realizado apagamento ou escrita |
1 | 0 | 1 | Hold, saídas em alta impedância e não é realizado apagamento ou escrita |
1 | 0 | 0 | Escrita (Write), os dados inseridos no barramento de dados são escritos na localidade apontada pelo barramento de endereços |
1 | 1 | 1 | Leitura (Read), os dados armazenados na localidade apontados pelo barramento de endereços são disponibilizados no barramento de dados |
1 | 1 | 0 | Proibido |
Atenção
Note que a Tabela 4, é um guia genérico. Ao utilizar uma memória SRAM no seu projeto, você deve ler e seguir as informações fornecidas pelo fabricante. Diferentes circuitos integrados de SRAM podem apresentar sinais de controle diversos ou serem ativados em diferentes níveis lógicos.
A arquitetura interna de uma SRAM é dada por:
Comentário
O circuito acima pode parecer complicado à primeira vista, mas você verá que seu funcionamento é relativamente simples.
Primeiro temos o decodificador de endereços que exerce função idêntica à observada nos circuitos das memórias ROM. Ele garante que apenas uma linha de endereço (Y3, Y2, Y1, Y0) esteja ativa por vez.
Um par de buffers de três estados conectados na saída dos latches D são ativados de acordo com a linha de endereço ativa. Eles garantem que a saída de latches de diferentes endereços não entrem em curto.
A seguir, observamos os buffers próximos às saídas da memória. O sinal de habilitação neles é CS . OE, ou seja, para a saída estar ativada é necessário que CS e OE estejam ativados.
Por último, olhamos a entrada de habilitação dos latches. Relembrando a tabela de operação do latch D:
En | Qn+1 | Ação |
---|---|---|
0 | Qn | hold |
1 | D | load |
Pela tabela característica do latch D, fica claro que para uma escrita ser realizada a entrada de enable do latch deve estar ativada.
A entrada de Enable dos latches é um AND dos sinais e a linha de endereço relativa à localidade de memória do latch.
Resumindo
Para que uma escrita seja realizada (em = 1), é necessário que, simultaneamente, o sinal de CS e a linha estejam ativos e esteja em nível baixo.
DRAM
As DRAM (Dynamic RAM) ou RAM Dinâmica, armazenam os bits como carga em minúsculos capacitores construídos na pastilha do circuito impresso com materiais semicondutores. Assim, a célula básica de memória de uma DRAM é composta por um capacitor e um transistor, que controla a carga e descarga do capacitor. Essa forma de armazenar informação torna possível construir memórias com maior capacidade, utilizando a mesma área de chip.
Resumindo
Utilizando a tecnologia das DRAM conseguimos fazer memórias com maior capacidade e menor custo por byte em relação as RAM estática.
Por outro lado, esses pequenos capacitores, devido a correntes de fuga, perdem carga espontaneamente com o tempo, sendo necessário realizar periodicamente operações de repotencialização (mais comumente referidas pelo termo em inglês, refresh), que consiste em reescrever os dados nas mesmas posições, visando reestabelecer a carga dos capacitores que armazenam a informação.
Durante o intervalo de tempo em que a DRAM está realizando o refresh, ela fica indisponível para realizar leituras e escritas, o que limita suas taxas de transferência.
Adicionalmente, o ciclo de leitura do dado também acaba por afetar a carga dos capacitores contendo a informação. Assim, após a realização de uma leitura, o dado deve ser reinserido. Essa operação é conhecida como pré-carga (precharge) e é feita automaticamente pela memória, porém consome tempo. Tais fatores fazem com que as DRAM sejam mais lentas do que as SRAM.
Atenção
O controle e a arquitetura das DRAM são significativamente mais complexos do que os da SRAM, fugindo ao escopo deste tema.
A seguir, uma tabela comparando a DRAM e a SRAM:
DRAM (dinâmica) | SRAM (estática) | |
---|---|---|
Vantagens |
|
|
Desvantagens |
|
|
Tempo de acesso |
|
|
Verificando o aprendizado
ATENÇÃO!
Para desbloquear o próximo módulo, é necessário que você responda corretamente a uma das seguintes questões:
O conteúdo ainda não acabou.
Clique aqui e retorne para saber como desbloquear.
Conclusão
Considerações Finais
Neste tema, estudamos as memórias digitais, esse importante componente da eletrônica digital que utilizamos diariamente em diversos dispositivos.
No primeiro módulo, aprendemos conceitos fundamentais relacionados às memórias, características, classificação e interface básica. Em seguida, estudamos as principais memórias semicondutoras, vimos as memórias ROM, PROM, EPROM, EEPROM, FLASH, SRAM e DRAM.
Conhecer as memórias mais comuns e suas características é muito importante para compreender a estrutura de sistemas microprocessados, pois eles utilizam diversos tipos de memória de acordo com a finalidade.
Podcast
CONQUISTAS
Você atingiu os seguintes objetivos:
Identificou a interface básica de uma memória e as principais classificações
Listou os principais tipos de memória e suas características