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
Tabela 1 - Mapeamento de uma memória 128x16

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
Conversão direta entre hexadecimal e binário

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
Tabela 2 - Multiplicadores no contexto de sistemas binário

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
Clique nas barras para ver as informações. Objeto com interação.
Estrutura de acesso

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.

Volatilidade

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.

Suporte à escrita

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.

Armazenamento

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:

Figura 1 - Interface genérica de uma memória

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:

Memória com 1024 localidades e entrada de habilitação

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.

Figura 2 - Diversos pentes de memória RAM em uma placa-mãe

Para os exemplos, a seguir, consideraremos uma memória com suporte à escrita de 256x8 com dois sinais de controle:

  • O CS¯ 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 WE¯ 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édia

Atençã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.

Clique na barra para ver as informações.Objeto com interação.
Solução

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).

Figura 3 - Memória 256x16

Exemplo 2

A partir de duas memórias 256x8, conforme descritas acima, projete uma memória de 512x8 com os mesmos sinais de controle.

Clique na barra para ver as informações.Objeto com interação.
Solução
Figura 4 - Memória 512x8

Note que, para a memória na parte de cima, é necessário que CS¯ = 0 e A8 = 1 , mas para a memória na parte de baixo estar ativa, precisamos que CS¯ = 0 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?

Clique na barra para ver as informações.Objeto com interação.
Solução

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:

Figura 5 - Representação da Memória ROM

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
Tabela 3 - Exemplo da tabela de uma ROM 4x2

A implementação desta ROM pode ser feita da seguinte forma:

Figura 6 - Implementação da ROM descrita na Tabela 3

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:

Figura 7- Memória PROM 4X3 virgem
Figura 8 - Memória PROM 4X3 após a 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
Tabela-verdade da memória PROM

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:

Figura 10 - Representação da memória EEPROM

As funções dos sinais de controle são:

Clique nas barras para ver as informações. Objeto com interação.
OE (output enable)

Se desativado, desabilita as saídas e as deixa em alta impedância.

CE (chip enable)

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.

WE¯ (write enable)

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 (WE¯) 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.

Figura 11 - Diagrama de uma SPROM 256X1 virgem

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:

Figura 12 - Representação da memória SRAM

Os sinais de controle utilizados na SRAM são similares aos utilizados nas memórias já estudadas neste tema:

Clique nas barras para ver as informações. Objeto com interação.
CS (chip select)

Se estiver desabilitado coloca as saídas em alta impedância e impede que sejam realizadas escritas.

OE (output enable)

Quando desabilitada, coloca as linhas de dados em alta impedância.

R/W¯ (read/write)

Essa entrada controla se a memória deve realizar uma operação de escrita ou leitura. Para realizar escritas fazemos R/W¯=0, e para fazer leituras utilizamos R/W¯=1.

Utilizando esses sinais, podemos montar a tabela de operação básica de uma SRAM:

Sinal de controle Operação
CS OE R/W¯
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
Tabela 4 - Tabela de operação genérica de uma SRAM

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:

Figura 13 - Diagrama de uma SRAM 4x2

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
Tabela 5 - Tabela característica latch D

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 CS, R/W¯¯ 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 R/W¯ 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
  • alta densidade de integração
  • baixo consumo de potência
  • baixa geração de calor
  • baixo custo por byte
  • alta velocidade
  • não precisam de refresh
Desvantagens
  • baixa velocidade
  • necessidade de refresh
  • baixa densidade de integração
  • alto consumo de energia
  • alta geração de calor
  • alto custo
Tempo de acesso
  • 7,5 a 70 nanosegundos
  • No máximo 10 nanosegundos
Tabela 6 – Quadro comparativo entre as memórias DRAM e SRAM

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