Ivair José de Souza

Memórias

Click nos links abaixo

RAM

PROM

Tecnologias da SRAM

Tecnologia das memórias

ROM

EPROM

Evolução da cache

FPM DRAM e EDO DRAM

DRAM

EEPROM

Módulos de memória

EDO DRAM e SDRAM

SRAM

FLASH ROM

SIMM-30 e SIMM-72

Instalação de memória

BIOS Memória cache DIMM-168 e DDR Célula de memória


 

RAM: Random Access Memory (memória de acesso aleatório).  A RAM permite as operações de leitura e escrita e tem os seus dados apagados quando a fonte de energia é desligada isto é, RAM é volátil.
O tempo de acesso à memória RAM independe da posição de memória a ser acessada. O tempo gasto para acessar o endereço 1 é o mesmo que para acessar o endereço 10000, visto que este acesso  é aleatório. Nas fitas magnéticas, o acesso à informação é feito de forma seqüencial o que torna o tempo de acesso lento e dependente de onde se encontra a informação ou dado na fita.

A RAM é a área de trabalho do PC. Ao abrir um arquivo, o mesmo é copiado do disco rígido para a RAM.e ao desligar o computador deve-se salvar o trabalho para que as modificações feitas não sejam perdidas. 

ROM: Read Only Memory (memória somente de leitura). A ROM aceita somente a operação de leitura. Outra característica da ROM é que os dados armazenados não são apagados mesmo desligando a fonte de energia isto é, ROM não é volátil.

O tempo de acesso à ROM (200ns) é bem maior que o tempo de acesso à RAM isto é, a memória ROM é bem mais lenta do que a memória RAM. Devido a isto, durante a inicialização do PC é feita uma cópia do conteúdo da ROM/BIOS para a RAM e esta operação é denominada de SHADOW RAM. Esta função deve ser habilitada no SETUP do PC

A ROM armazena o BIOS do computador e é através do BIOS que pode-se configurar o SETUP. Os dados do SETUP ficam armazenados numa memória CMOS que é volátil e por isto, estes dados (configuração do hardware do PC) são perdidos quando a "bateria do SETUP" é removida ou descarregada. Sendo o BIOS armazenado na memória ROM (não-volátil) torna-se possível reconfigurar o setup.

BIOS (Basic Input Output System -- Sistema básico de entrada e saída) é um programa que é executado ao ligar o PC. O mesmo, testa o hardware básico  (memória, teclado, drives, etc) e inicia a carga do sistema operacional para a memória RAM.



 

 

RAM estática e RAM dinâmica

HÁ basicamente dois tipos de memória RAM que são:
SRAM (RAM estática) e a DRAM (RAM dinâmica). A DRAM é a memória utilizada em larga escala nos PCs. Quando um PC possui 256 MB, quer dizer que no mesmo há 256 MB de memória DRAM.

Vantagens da DRAM:
- Baixo custo e integração de uma grande quantidade de células num pequeno espaço.
- Pode-se produzir chips em uma larga escala de integração visto que as células de memória são mais simples de serem construídas. (um transistor MOS e um capacitor).
- Baixo consumo de energia.

Desvantagens da DRAM:
- É lenta isto é, o tempo de acesso é relativamente alto.
- Exigem refresh isto é, deve-se reforçar os dados armazenados por que o capacitor perde a sua carga num tempo de 2 ms aproximadamente (Este capacitor é minúsculo e por isto descarrega rapidamente).

A memoria DRAM é uma célula capacitiva e como estes "minúsculos capacitores" perdem a sua carga rapidamente torna-se necessário"regravar" os dados num pequeno intervalo, sendo esta operação denominada de refresh. 



EPROM: Erasable  Programmable  Read Only  Memory
                          ROM programável apagável

A EPROM  pode ser apagada e reprogramada. Os dados gravados na EPROM são apagados através de radiação ultravioleta. Há nestes chips uma abertura ou janela para a entrada da luz ultravioleta e com um tempo de exposição de 20 minutos em média. A EPROM não é volátil isto é, os dados gravados não são perdidos mesmo desligando a fonte de energia. Os PCs antigos  utilizavam a memória EPROM para armazenar o BIOS . Também,  diversos tipos de equipamentos eletrônicos  fizeram uso da mesma.


EEPROM: Electrically Erasable  Programmable  Read  Only  Memory
                        ROM programável e apagável eletricamente
Foi desenvolvida no início da década de 80.

As vantagens da EEPROM em RELAÇÃO à  EPROM são:
Menor tempo para apagar os dados gravados: alguns milésimos de segundos (10 ms) para a EEPROM contra 20 minutos, em média, da EPROM.

  • Pode-se selecionar áreas especificas de dados para serem apagados ou reprogramados. Na  EPROM todos os dados da memória eram apagados após a exposição à luz ultravioleta.

  • O tempo de programação das células da  EEPROM é  menor do que para a EPROM mas é, ainda, um processo lento. A tensão de programação da EEPROM é alta (tipicamente 20 a 25 volts)

  •   

    FLASH ROM: Flash Read Only Memory

    É uma evolução da EEPROM e tem um tempo de gravação  menor do que a EEPROM. Utiliza pulsos rápidos e tensões menores para a gravação (tipicamente 5 volts). Atualmente, este tipo de memória é muito utilizado nos computadores para armazenar o BIOS e com isto, o BIOS do PC pode ser atualizado (regravado) para atender a novos dispositivos de hardware como HDs por exemplo. Outras áreas utilizam muito desta tecnologia de memória como a robótica e a automação industrial. Há diversos dispositivos e equipamentos eletrônicos que utilizam a memória flash ROM visto que os mesmos, sempre, estão exigindo mudanças no projeto e na sua funcionalidade. As câmaras digitais também utilizam a memória flash ROM e com isto,  podem armazenar as imagens  mesmo  estando desligadas ou retirando as pilhas ou baterias. Telefone celular, PALM e MODEM são, também, exemplos de utilização da memória flash ROM.





     

     

    Memória Cache: Os PCs utilizam em conjunto com a DRAM uma memória mais rápida, a SRAM, que é denominada de cache. A cache aumenta o desempenho da DRAM aumentando com isto o desempenho do PC. 

    Um sistema de memória CACHE / DRAM  bem projetado apresenta ao usuário uma memória de alta capacidade de armazenamento aliada a um tempo de acesso muito baixo. Temos, então, uma memória com alta capacidade e alta velocidade a um custo reduzido

    Para que o sistema seja eficiente é necessário ter uma alta taxa de acerto isto é, o dado a ser utilizado pelo processador, deve estar disponível na cache. Caso haja falta (erro), isto é, o dado não se encontra na cache tem-se uma penalidade. Esta penalidade será tanto maior quanto mais distante estiver o dado solicitado pelo processador. O tempo de busca do dado aumentará se o dado estiver nos níveis mais baixos da hierarquia de memória.

    Este é o princípio da localidade que é visto em duas situações que são descritas da seguinte forma:
    Localidade temporal: Um determinado bloco ou dado pode ser utilizado várias vezes num curto espaço de tempo como por exemplo, a execução de um loop no programa. Neste caso, o dado solicitado está na cache.

    Localidade espacial: Blocos ou dados adjacentes aos que estão sendo processados podem ser facilmente acessados. Assim que os endereços das informações solicitadas vão sendo referenciados os endereços adjacentes (próximos) aos endereços dessas informações serão mais facilmente acessados. 


     

    Necessidade da memória cache

    Em 1989, surge o Processador Intel 80486DX com um Clock de 25 MHz (período de 40 ns) e o primeiro a utilizar memória cache. Na época, as memórias mais rápidas eram para 10 MHz (100ns), e eram lentas para o 80486.  Para ler um dado na memória perdia-se tempo ao esperar alguns ciclos do clock para que o dado fosse liberado pela memória e acessado pelo processador.

    A cache interna de 8 KB  permitia um bom desempenho do processador, mesmo com a memória DRAM mais lenta.

     

    Processadores 386 produzidos pela AMD na época (1991-1993) eram concorrentes do 486, até então produzidos apenas pela Intel. Assim como ocorria no 486, os proces. 386 passaram também a necessitar de cache para melhorar o seu desempenho. O 386 não tinha cache interna então, foram produzidas placas de CPU  386 com cache externa. chips de memória SRAM na placa-mãe. Com isto, tinha-se placas-mãe 386 com 8 kB, 16 kB, 32 kB, 64 kB e 128 kB de cache externa.

    Um 386 de 40 MHz e 128 KB de cache externa era tão veloz quanto um 486 de 25 MHz e 8 KB de cache interna e era, ainda, uma opção mais barata.

     

    A cache externa melhorava o desempenho, assim foram criadas placas-mãe para 486, também com cache externa. Eram comuns placas para 486 com 256 KB de cache externa, além dos 8 kB de cache interna existentes no processador.

    Este esquema de dupla cache (interna e externa) utilizada em processadores 486 foi mantido em processadores mais modernos, como o 586, o Pentium e todos os demais processadores para Soquete 7, com exceção do AMD K6-III, que operava com 3 caches.

    Write Through: O cache é utilizado para as operações de leitura ao passo que as operações de escrita são feitas na memória RAM utilizando wait states o que diminui o desempenho do PC.

    Write Back: É o método ideal pois utiliza a cache para ler e escrever em memória. O controlador de cache é bem mais complexo para este método.


     

    Cache L1 e L2

    Atualmente as caches L1 e L2 ficam dentro do processador e não faz mais sentido classificá-las como interna e externa. A cache interna é a cache primária ou cache L1. A cache externa é a cache secundária ou cache L2.              L vem de Level (nível)

    A cache do Pentium Pro

    O Pentium e o Pentium MMX eram utilizados em computadores de uso pessoal. A Intel produziu o Pentium Pro para aplicações de nível profissional e em servidores (1995-1997). Foi o primeiro com cache L2 embutida. Dentro do Pentium Pro havia a cache L1 e a cache L2 de 256 KB.

     

     

    A cache do Pentium II

    O Pentium II, tem núcleo similar ao do Pentium Pro. A principal diferença está na cache L2. Ao invés de uma única pastilha de silício com o processador e a cache L2, o Pentium II fica numa placa de circuito, junto aos chips da cache L2. O conjunto é montado num cartucho metálico. Do ponto de vista do núcleo do processador, esta cache L2 é externa, mas considerando o cartucho como um todo, a cache L2 é interna. Não se utiliza mais os termos cache interna e cache externa.

     

    Pentium II: Cache L1 de 32KB sendo 16KB para dados e 16KB para instruções.

    A cache L2, de 512KB, trabalha à metade da frequência do processsador.

    Este sistema de cache L2 foi utilizado nas primeiras versões do Pentium III e AMD Athlon.

     

    Processador Pentium II

     


    Módulos de memória para computadores
           




    SIMM:   Single In line Memory Module
    DIMM:  Double In line Memory Module

     

    Descrição dos módulos de memória acima

    SIMM-30 vias: São de tecnologia FPM DRAM e utilizados nos PCs 386 e primeiros PCs 486.
    Tempo de acesso de 70ns a 80ns (muito lento para os padrões atuais).
    São módulos de baixa capacidade (mais comuns: 1MB e 4MB) e como cada módulo opera com 8 bits são necessários 4 módulos para completar um banco de memória (32bits) nos PCs 386DX e PCs 486.
    Com 4 módulos de 4MB tem-se um total de 16MB de memória instalada.

    SIMM-72 vias: São utilizados nos PCs 486 e nos primeiros PENTIUMs.
    Tempo de acesso de 50ns a 80ns sendo de tecnologia FPM DRAM (
    70ns a 80ns) e EDO DRAM (50 a 60ns)
    Raramente, tem-se um PC486 que aceita a memória EDO sendo esta mais utilizada no PC Pentium. Como são de baixa capacidade e lentos, esses módulos já não são mais utilizados nos PCs atuais.
    Os módulos SIMM-72 mais utilizados são de 4MB, 8MB e 16MB e trabalham com 32 bits.
    Completa-se um banco de memória com um módulo para o 80486 e dois módulos para o Pentium.
    O processador 80486 acessa a memória a 32 bits e o Pentium a 64 bits

    DIMM-168 vias: Utilizado nos PCs PENTIUMs.
    Tempo de acesso de 10ns (PC100),  7,5ns (PC133). O número entre parênteses refere à freqüência de operação, por exemplo PC100 é um módulo de memória que opera a 100MHz.
    Utiliza tecnologia SDRAM que é uma DRAM  Sincronizada com o clock externo do processador ou freqüência do barramento. Opera com 64 bits portanto, basta um módulo para completar um banco de memória nos PCs Pentiums.
    Os primeiros Pentiums utilizavam, também, módulos DIMM-168 com tecnologia EDO DRAM.

    DDR: Double data Rate.  Transfere dois dados a cada pulso de clock. Transfere dados na subida e na descida do clock. Atualmente, são os módulos de memória mais utilizados nos PCs por que além de terem uma maior capacidade de armazenamento, estas memórias são mais rápidas do que o DIMM-168. O módulo DDR trabalha com 64 bits e também utiliza a tecnologia SDRAM.
    Um módulo DDR-333 corresponde a dois módulos DIMM-168 de 166 MHz num único módulo. DDR-333 é também denominado de PC2700 referindo-se à taxa de transferência que é de 2700MB/s.

    Módulo Clock Taxa de transferência
    DDR200 ou PC1600 100 MHz  1600 MB/s ou 1,6 GB/s
    DDR266 ou PC2100 133 MHz 2100 MB/s ou 2,1 GB/s
    DDR300 ou PC2400 150 MHz 2400 MB/s ou 2,4 GB/s
    DDR333 ou PC2700  167 MHz 2700 MB/s ou 2,7 GB/s
    DDR400 ou PC3200 200 MHz 3200 MB/s ou 3,2 GB/s



    RAMBUS (RIMM-184): Utilização principal é nos primeiros PCs  Pentium 4 . Opera com bancos de 16 bits e numa velocidade muito alta (800MHz) com uma taxa de transferência. de 1600 MB/s (1,6 GB/s).  É utilizada em pares formando bancos de 32 bits e uma uma taxa de transferência de 3200MB/s ou 3,2 GB/s. Esta memória, além de ser muito cara tem uma latência alta. Com isto, o Pentium 4, atualmente, utiliza memória DDR-SDRAM. 



    Tecnologias das memórias
    Os processadores atingem a todo momento maiores velocidades de processamento e para que os mesmos desempenhem bem suas tarefas devem ter o auxílio de memórias cada vez mais rápidas e com maior capacidade de armazenamento. A velocidade das memórias ainda não acompanha a velocidade exigida pelos processadores. Avanços significativos têm sido conseguido através de diversas técnicas. Uma opção é aumentar o número de bits da memória mas isto é limitado tecnicamente sendo um dos problemas, a interferência eletromagnética. A célula de memória DRAM é constituída de um transistor e um capacitor o que dificulta o aumento da velocidade devido ao efeito capacitivo. A principal vantagem da célula de memória ser constituída de um capacitor e um transistor MOS (MOS - Semicondutor de óxido metálico) é a simplicidade de implementação visto que um número muito grande de células pode ser construído num pequeno espaço a um custo reduzido. Uma das alternativas feita para diminuir a velocidade de acesso às memórias é obter uma melhor organização física e uma melhor forma de acesso. As células de memória são organizadas em uma matriz de linhas e colunas. Para acessar uma célula para ler ou gravar um bit basta selecionar a linha e a coluna onde se encontra a célula.
    Envia-se então o endereços das linhas e colunas que são:
    RAS (Row Address Strobe) para selecionar a linha.
    CAS (Column Address Strobe) para selecionar a coluna.

    O método de enviar endereços RAS e CAS para cada célula era utilizado nas memórias convencionais ("antigas").
    Para os módulos de memória SIMM-30 vias desenvolvidos para 386 e 486 foi feita uma melhoria na forma de acesso onde envia-se uma vez o endereço RAS e partir daí envia-se os endereços CAS. Esta tecnologia é denominada de FPM DRAM.

     

    FPM DRAM: Fast Page Mode DRAM.
    Tecnologia das memórias do tipo SIMM-30 e SIMM-72 e é uma melhoria na forma de acessar as células de memória. Envia-se uma vez o endereço RAS e partir daí envia-se os endereços CAS.

    EDO DRAM: Extended Data Out DRAM.
    Tecnologia das memórias SIMM-72 e alguns módulos DIMM-168. (o mais comum dos módulos DIMM-168 é a tecnologia  SDRAM). Na EDO DRAM, pode-se iniciar uma nova leitura antes de completar a leitura anterior tornando a EDO DRAM mais rápida do que a FPM DRAM. 

    SDRAM: Synchronous DRAM.
    Opera sincronizada com o clock externo do processador e com isto podem entregar o dado solicitado pelo processador a cada ciclo do CLOCK. Tem um tempo de acesso igual ou menor do que 10 ns e podem operar com freqüências do barramento de 100 MHz, 133MHz ou superior.


     

    Detecção e correção de erros 

    Normalmente, os dois métodos para detecção e correção de erros mais utilizados são: O método do bit de paridade e o método ECC (Error Correcting Code -- Código de correção de erros).

    Bit de paridade: Adiciona-se o bit de paridade ao byte transmitido e com isso tem-se 9 bits transmitidos sendo a função do bit de paridade (nono bit) verificar se há erro no dado transmitido.  Pode-se utilizar a paridade par ou a paridade ímpar. Caso utilize a paridade par, a saída do circuito gerador de paridade será 1 (um) para um número par de bits 1 (um) e será 0 (zero) para um número ímpar de bits 1. 

    No receptor, o verificador de paridade compara a informação recebida com o bit de paridade P.  A saída do verificador será 0 (zero) se o dado recebido estiver correto e será 1 (um) se o dado recebido for falso. Este método não permite a correção de erros e ainda tem o inconveniente de não informar se há erro quando ocorre a inversão de 2 bits ou quando a quantidade de bits invertidos ainda gerar um número par de bits 1 (um). Por exemplo, o byte  1 0 1 1 0 0 1 0 ao ser transmitido poderá ter dois bits com erro e será recebido como  1 0 0 0 0 0 1 0 e o erronão será detectado por que o número de bits 1 (um) continuou par. Portanto, o método da paridade só é seguro se houver somente erro (inversão) em um bit. Nos módulos de memória antigos SIMM-30 e SIMM-72 era comum a utilização de paridade para detectar erros e neste caso, os módulos SIMM-30 operavam com 9 bits e os módulos SIMM-72 operavam com 36 bits. Atualmente este método não é, praticamente, utilizado para detecção de erros nas memórias.




    Na porta lógica exclusive-or (ou exclusivo) sai 1 para número ímpar de 1s e sai 0 para número par de 1s. No caso de uma porta EXOR de duas entradas  sai 1 quando as entradas são diferentes e sai 0 (zero) quando as entradas são iguais. A porta NOT inverte o bit de entrada (quando entra 0 sai 1 e quando entra 1 sai 0).


    O  ECC  (Error Correction Code) é um método bem mais complexo e eficiente que detecta e corrige  erros. As memórias DIMM-168 com o recurso ECC utilizam 8 bits a mais (1 bit para cada byte). Por exemplo, os módulos DIMM-168 de 64 bits são os mais comuns mas há também os módulos de 72 bits. O ECC pode utilizar mais de um bit para cada byte e é mais utilizado em sistemas onde os dados são mais susceptíveis de serem corrompidos como por exemplo disco rígido, CD-ROM, etc.


     

    Número de ciclos de acesso à memória.

    Na seqüência de acesso ou esquema de leitura, o primeiro número é o número de ciclos gastos para a primeira leitura e os outros três números se referem às três leituras seguintes e em cada leitura são lidos grupos de 64 bits.
    A transferência de dados entre a memória DRAM e a memória cache é feita através de 4 leituras consecutivas.

     

    Alguns exemplos de seqüências de leitura para memórias:
    FPM DRAM:  7-3-3-3  => total de 7+3+3+3 = 16 ciclos de acesso
    7 ciclos para o primeiro acesso e 3 ciclos para cada um dos três acessos seguintes.

    EDO DRAM:   6-2-2-2  =>  total de 6+2+2+2 = 12 ciclos de acesso

    SDRAM:          5-1-1-1  =>  total de 5+1+1+1 = 8 ciclos de acesso

    O primeiro número é a latência e uma memória  com o esquema  3-1-1-1 tem latência 3  e um total de 6 ciclos de acesso. O maior tempo da primeira leitura é devido ao envio do endereço da linha (RAS) e o endereço da coluna (CAS). A  partir da segunda leitura envia-se somente os endereços das colunas.(CAS).

    Deve-se escolher uma memória com latência baixa caso contrário, a memória escolhida deve operar com uma freqüência maior. Um clock de 100 MHz tem o tempo de um ciclo (período) igual a 10 ns ao passo que um clock  de 800MHz tem o tempo de um ciclo (período)  igual a 1,25 ns.

    Para uma seqüência de leitura 5-1-1-1 e clock de 200 MHz (5ns) gasta-se para uma leitura completa 8 ciclos e um  tempo de 40ns  (8 x 5ns = 40ns) ao passo que uma memória com uma seqüência 9-3-3-3 e freqüência de 800MHZ (1,25ns) gasta-se 18 ciclos e um tempo de 22,5 ns  (18 x 1,25ns = 22,5 ns).

    Quanto menor a latência menor será o wait states (ciclos de espera) e maior será a velocidade de acesso.

    Há memórias que operam com um clock alto mas com uma latência também alta o que compromete o desempenho em determinadas aplicações. Abaixo tem-se as especificações de uma memória fabricada pela Kingston.                
    Código da memória Especificações
    KHX6400D2/256  256MB  800MHz  DDR2   Non-ECC   CL5   (5-5-5-15)

    Uma seqüência de 5-5-5-15 dá um total de 30 ciclos de acesso.

     

     


     

     

    Instalação de memória no PC:  Quadro resumo
    Processador => 386SX 386DX 486 Pentium
    Nº de bits externo => 16 32 32 64
    SIMM-30   (8 bitts) Número de módulos => 2 4 4 X
    SIMM-72   (32 bits) X X 1 2
    DIMM-168  (64 bits) X X X 1

    Foi considerado o preenchimento de somente um banco de memória sendo que, normalmente, na Placa-mãe há um número de soquetes que permite instalar de dois a quatro bancos. Um banco de memória está completo quando o número de bits da memória instalada for igual ao número externo de bits do processador. Deve-se preencher o banco (0). Há placas-mãe em que pode-se instalar os módulos DIMM-168 fora de ordem.



     

     

     

    Célula de uma DRAM (RAM dinâmica)

    Links para dois importantes fabricantes de memória:
    http://www.kingston.com/brasil/
    http://www.corsair.com

    Voltar ao topo da página

    Voltar à página principal

    SRAM: Static RAM (RAM estática)

    Vantagem da SRAM:
    - São mais rápidas que a DRAM (tem um tempo de acesso muito baixo).

    Desvantagens da SRAM:
    - Alto custo.
    - Ocupam um espaço relativamente grande para cada célula de memória.

    O alto custo da SRAM aliado ao grande espaço ocupado pela célula de memória (transistor bipolar) dificultam o desenvolvimento de uma grande quantidade de memória SRAM nos PCs.


     




    PROM: Programmable Read Only Memory
                          Memória Somente de Leitura Programável   (ROM Programável)

    Não são programadas durante o processo de fabricação e podem ser programadas pelo usuário de acordo com suas necessidades. Após ser programada não pode ser apagada e reprogramada.  Há circuitos eletrônicos especiais (gravadores de prom) para a programação. A PROM tem internamente fusíveis que são queimados propositalmente durante a gravação da mesma. Uma vez queimados estes fusíveis, não será mais possível alterar os dados já gravados.  A PROM  não é volátil.