82
Capítulo 11 Memórias Leitura e escrita Podemos dividir as memórias em duas grandes categorias: ROM e RAM. Em todos os computadores encontramos ambos os tipos. Cada um desses dois tipos é por sua vez, dividido em várias outras categorias. ROM ROM significa read only memory, ou seja, memória para apenas leitura. É um tipo de memória que, em uso normal, aceita apenas operações de leitura, não permitindo a realização de escritas. Outra característica da ROM é que seus dados não são perdidos quando ela é desligada. Ao ligarmos novamente, os dados estarão lá, exatamente como foram deixados. Dizemos então que a ROM é uma memória não volátil. Alguns tipos de ROM aceitam operações de escrita, porém isto é feito através de programas apropriados, usando comandos de hardware especiais. Uma típica aplicação da ROM é o armazenamento do BIOS do PC, aquele programa que entra em ação assim que o ligamos. Este programa testa a memória, inicializa o hardware e inicia a carga do sistema operacional. RAM Significa random access memory, ou seja, memória de acesso aleatório. Este nome não dá uma boa idéia da finalidade deste tipo de memória, talvez fosse mais correto chamá-la de RWM (read and write memory, ou memória para leitura e escrita). Entretanto o nome RAM continua sendo utilizado por questão de tradição. Em operação normal, o computador precisa fazer não apenas o acesso a dados e instruções, através de leituras na memória, mas também guardar resultados, através de operações de escrita na memória. Além de permitir leituras e escritas, a RAM tem outra característica típica:

Capítulo MemóriasCurso_Tecnico/Turma138/Arquitetura de Micros... · RAMs podem ser divididas em duas grandes categorias: RAMs estáticas (SRAM) e RAMs dinâmicas (DRAM). A DRAM

  • Upload
    vonga

  • View
    216

  • Download
    0

Embed Size (px)

Citation preview

Capítulo 11 MemóriasLeitura e escritaPodemos dividir as memórias em duas grandes categorias: ROM e RAM.Em todos os computadores encontramos ambos os tipos. Cada um dessesdois tipos é por sua vez, dividido em várias outras categorias.

ROM

ROM significa read only memory, ou seja, memória para apenas leitura. Éum tipo de memória que, em uso normal, aceita apenas operações de leitura,não permitindo a realização de escritas. Outra característica da ROM é queseus dados não são perdidos quando ela é desligada. Ao ligarmosnovamente, os dados estarão lá, exatamente como foram deixados. Dizemosentão que a ROM é uma memória não volátil. Alguns tipos de ROMaceitam operações de escrita, porém isto é feito através de programasapropriados, usando comandos de hardware especiais. Uma típica aplicaçãoda ROM é o armazenamento do BIOS do PC, aquele programa que entraem ação assim que o ligamos. Este programa testa a memória, inicializa ohardware e inicia a carga do sistema operacional.

RAM

Significa random access memory, ou seja, memória de acesso aleatório. Estenome não dá uma boa idéia da finalidade deste tipo de memória, talvezfosse mais correto chamá-la de RWM (read and write memory, ou memóriapara leitura e escrita). Entretanto o nome RAM continua sendo utilizado porquestão de tradição. Em operação normal, o computador precisa fazer nãoapenas o acesso a dados e instruções, através de leituras na memória, mastambém guardar resultados, através de operações de escrita na memória.Além de permitir leituras e escritas, a RAM tem outra característica típica:

11-2 Hardware Total

trata-se de uma memória volátil, ou seja, seus dados são apagados quando édesligada. Por isso quando desligamos o computador e o ligamos novamente,é preciso carregar o sistema operacional. Resumindo, as principaiscaracterísticas da ROM e da RAM são:

ROM RAMSignificado Read only memory Random access memoryFaz leituras SIM SIMFaz escritas NÃO SIMPerde dados ao ser desligada NÃO SIM

Em linhas gerais, essas são as características das memórias tipos ROM eRAM. Existem entretanto ROMs que permitem gravações, e RAM que nãoperdem dados, como veremos adiante.

Encapsulamentos de ROMsQuase sempre você irá encontrar ROMs fabricadas com encapsulamentoDIP cerâmico ou plástico, como vemos na figura 1.

Figura 11.1

ROM com encapsulamento DIP.

O encapsulamento DIP (dual in-line package) cerâmico é mais utilizado pelasROMs do tipo EPROM (ou UV-EPROM). Essas ROMs possuem uma janelade vidro, através da qual os dados podem ser apagados através de raiosultra-violeta. Depois de apagadas, podem ser novamente gravadas. Em usonormal esta janela deve permanecer tampada por uma etiqueta. Portantonunca retire a etiqueta da ROM expondo sua janela de vidro, pois ela podeser apagada por exposição prolongada à luz natural.

Podemos ainda encontrar ROMs com outros encapsulamentos diferentes doDIP. Um encapsulamento relativamente fácil de encontrar é o PLCC (plasticleadless chip carrier), mostrado na figura 2.

Capítulo 11 - Memórias 11-3

Figura 11.2

ROM com encapsulamento PLCC.

Encapsulamento das RAMsOs chips de memória RAM também podem ser encontrados em diversosformatos, sendo que o mais comum é o encapsulamento SOJ (small outlinepackage J-lead), mostrado na figura 3. Você encontrará com freqüência esteencapsulamento nos chips que formam os módulos de memória e nos queforma a memória de vídeo, encontrados em placas de vídeo.

Figura 11.3

Chips de RAM com encapsulamento SOJ.

Também é comum encontrar chips de RAM com encapsulamento QFP(quad flatpack). São usados por chips que formam a cache L2 em placas deCPU com cache externa, e nos chips que formam a memória de vídeo.

11-4 Hardware Total

Figura 11.4

Chips de RAM com encapsulamento QFP.

Não confunda chip de memória com módulo de memória. Os chips deRAM com encapsulamento SOJ que mostramos na figura 3 são montadosem pequenas placas chamadas módulos de memória, que serão apresentadosmais adiante.

Encapsulamento de módulos de memóriaAté o início dos anos 90, as memórias dos PCs usavam encapsulamento DIPe eram instaladas, chip por chip. Trabalho fácil para um técnico, mas umatarefa bastante complexa para um usuário que nunca fez este tipo detrabalho. Os módulos de memória foram criados para facilitar a suainstalação, não só por parte do usuário, mas também pela indústriaeletrônica. É muito mais rápido conectar um módulo de memória queinstalar um grande número de chips avulsos.

Figura 11.5

Chip de memória com encapsulamento DIP emódulos de memória SIPP e SIMM.

Os primeiros módulos de memória eram chamados SIPP (single inline pinpackage), e foram lançados em meados dos anos 80. Este módulo era uma

Capítulo 11 - Memórias 11-5

pequena placa com chips de memória e terminais (“perninhas”) para encaixeno soquete apropriado. O processo de fabricação foi simplificado com aadoção dos módulos SIMM (single inline memory module). Ao invés deutilizar terminais de contato como o SIPP, esses módulos têm um conectorna sua borda. O soquete para este tipo de módulo é um pouco maiscomplicado, porém o processo de fabricação dos módulos tornou-se maissimples, e sua instalação mais rápida. Módulos SIPP caíram em desuso noinício dos anos 90, sendo substituídos pelo formato SIMM. Esses módulosforneciam 8 bits simultâneos e precisavam ser usados em grupos para formaro número total de bits exigidos pelo processador. Processadores 386 e 486utilizam memórias de 32 bits, portanto os módulos SIMM eram usados emgrupos de 4. Por exemplo, 4 módulos iguais, com 4 MB cada um, formavamum banco de 16 MB, com 32 bits.

Os módulos SIMM usados até então tinham 30 contatos, portanto eramchamados de SIMM/30, ou módulos SIMM de 30 vias (ou 30 pinos). Aindaeram bastante comuns em meados dos anos 90, mas já existiam na época,módulos SIMM de 72 vias (SIMM/72), que forneciam 32 bits simultâneos.Em placas de CPU 486, um único módulo SIMM/72 formava um banco dememória com 32 bits. Esses módulos, apesar de serem mais práticos que osSIMM/30, eram pouco utilizados, até o lançamento do processador Pentium.O Pentium trabalha com memórias de 64 bits, portanto seriam necessários 8módulos SIMM/30 para formar um banco de memória. Isto tornaria aprodução complexa, além de ocupar uma grande área na placa de CPUapenas para os módulos de memória. Os fabricantes passaram então a adotaros módulos SIMM/72. Dois desses módulos eram suficientes para formar umbanco de 64 bits. Já em 1996 era praticamente impossível encontrar à vendamódulos SIMM/30, exceto no mercado de peças usadas.

Figura 11.6

Módulos SIMM/30 e SIMM/72.

11-6 Hardware Total

Visando uma integração de componentes ainda maior, foram criadosmódulos que fornecem 64 bits simultâneos. Esses módulos são chamadosDIMM/168 (dual inline memory module), e possuem 168 vias. Um únicomódulo DIMM/168 forma um banco de memória com 64 bits. É exatamenteo número de bits utilizados pelos processadores modernos (Pentium 4,Pentium III, Athlon, Duron, Celeron) e os não tão modernos, como K6, K6-2, K6-III, Pentium Pro, Pentium II, Pentium MMX, etc.

Figura 11.7

Módulo DIMM/168.

Se você precisar dar manutenção em uma placa de CPU Pentium produzidaentre 1995 e 1997, tem grandes chances de encontrar um módulo COAST(Cache on a Stick). Este tipo de módulo era usado para formar a memóriacache de algumas placas de CPU Pentium, e também de algumas placas deCPU 486 e 586 produzidas naquela época. Note que os módulos COASTpara placas de CPU Pentium são um pouco diferentes dos utilizados paraplacas de CPU 486/586. Os módulos para Pentium usam memórias SRAMdo tipo Pipelined Burst, que normalmente têm o encapsulamento TQFP.Módulos para 486/586 usam em geral memórias SRAM assíncronas, com oencapsulamento PSOP. Os dois tipos são mostrados na figura 8.

Figura 11.8

Módulos COAST.

A figura 9 mostra os principais módulos de memória descritos aqui.

Capítulo 11 - Memórias 11-7

Figura 11.9

Módulos de memória.

Dois novos tipos de memória prometem ser comuns nos computadoresavançados, a partir de 2001. São as memórias RAMBUS (RDRAM) e asmemórias DDR SDRAM. Memórias RAMBUS usam o o encapsulamentoRIMM de 184 vias (figura 10). Este tipo de módulo é muito parecido com osdemais apresentados até aqui, exceto pelo fato de poder ter uma chapametálica cobrindo seus chips. Note que o módulo da figura 10 não possuiesta chapa, que atua como um dissipador de calor. Esses módulos têmtamanho similar ao dos módulos DIMM/168, cerca de 13 centímetros.Entretanto não existe risco de conexão em um soquete errado, já que asduas fendas existentes do conector só se ajustam aos soquetes apropriados.

Figura 11.10

Módulo RIMM/184.

Também bastante parecidos são os módulos DIMM/184, utilizado pelasmemórias DDR SDRAM. A medida é similar à dos módulos DIMM/168 eRIMM/184, mas esses módulos também possuem um chanfro característicoque impede o seu encaixe em um soquete errado.

Figura 11.11

Módulo DIMM/184.

11-8 Hardware Total

Módulos DIMM/168, DIMM/184 e RIMM/184 têm larguras semelhantes(13,3 cm), mas diferenças bastante sutis. A forma mais fácil de reconhecer adiferença é através dos chanfros existentes no seu conector. O DIMM/184 éo único que possui um só chanfro, enquanto o DIMM/168 e o RIMM/184possuem dois chanfros. Os dois chanfros do DIMM/168 dividem os contatosdo conector em três grupos, enquanto os dois chanfros do RIMM/184 ficammais próximos do centro, mas não existem contatos entre os dois chanfrosdo RIMM/184. Uma outra diferença: os módulos DIMM/168 possuem umchanfro em forma de semi-circunferência em cada lateral. Os módulosDIMM/184 possuem dois chanfros em cada lateral.

RAM estáticaAté agora abordamos os encapsulamentos usados pelos módulos dememória. Vamos agora apresentar, do ponto de vista eletrônico, os principaistipos de memória RAM. Não confunda tipo com formato. Memórias comformatos (encapsulamentos) iguais podem ser de tipos eletronicamentediferentes, portanto devemos tomar cuidado para não utilizar memóriasinválidas, iludidos por formatos aparentemente corretos.

RAMs estáticas e dinâmicas

RAMs podem ser divididas em duas grandes categorias: RAMs estáticas(SRAM) e RAMs dinâmicas (DRAM). A DRAM é a memória usada emlarga escala nos PCs. Quando dizemos que um PC possui, por exemplo, 128MB, tratam-se de 128 MB de DRAM. São memórias baratas e compactas, oque é um grande atrativo. Por outro lado, são relativamente lentas, o que éuma grande desvantagem. Por esta razão, os PCs utilizam em conjunto com aDRAM, uma memória especial, mais veloz, chamada cache, que serve paraacelerar o desempenho da DRAM. Há poucos anos, a chamada cache L2era formada por chips de SRAM, localizados na placa de CPU. Atualmentea cache L2 faz parte do núcleo dos processadores modernos.

A DRAM por sua vez pode ser subdividida em outras categorias, sendo asprincipais:

DRAM FPM DRAM EDO DRAM SDRAM DDR SDRAM

Capítulo 11 - Memórias 11-9

RDRAM

Em termos cronológicos, a DRAM foi usada do final dos anos 70 até o finaldos anos 80. Em meados dos anos 80 surgiu a FPM DRAM (Fast Page ModeDRAM), bastante utilizada até meados dos anos 90. Passaram então a sercomuns as memórias EDO DRAM (Extended Data Out DRAM), que porsua vez foram substituídas pela SDRAM a partir de 1997. A partir de 2000, aSDRAM começou a dar lugar à DDR SDRAM e à RDRAM.

Memórias SRAM existem desde os anos 60, e memórias DRAM desde osanos 70. Ao contrário do que o nome sugere, a DRAM não é caracterizadapela rapidez, e sim pelo baixo custo, aliado à alta capacidade, emcomparação com a SRAM. A alta capacidade é devida ao fato das suascélulas de memória serem mais simples. Com células mais simples, é possívelcriar chips com maior número de células de memória. Em compensação, omecanismo de acesso às suas células de memória é mais complicado. NaRAM estática, basta fornecer o endereço e o comando (leitura, porexemplo), e depois de um certo tempo (tempo de acesso), os dados estarãopresentes nas suas saídas. Da mesma forma, nas operações de escrita, bastafornecer ao chip o valor a ser armazenado e o endereço onde deve ser feitoeste armazenamento, acompanhado do comando de gravação. Passado otempo apropriado (tempo de acesso), os dados estarão gravados.

Funcionamento da SRAM

A figura 12 mostra o diagrama simplificado de uma SRAM. Ela recebeendereços (provenientes do processador), e pode enviar os dados que estãoarmazenados no endereço especificado, ou armazenar os dados nesteendereço, de acordo com os sinais de controle (leitura/escrita).

*** 35% ***Figura 11.12

Diagrama simplificado de uma SRAM.

A figura 13 mostra o diagrama de blocos de uma SRAM, de forma maisdetalhada. O chip usado neste exemplo tem a organização de 8kx8, ou seja,

11-10 Hardware Total

8k células de 1 byte (8 bits). Podemos encontrar chips SRAM com diversasoutras organizações, com várias capacidades diferentes. O tamanho dascélulas mais comuns são 8, 16 e 32 bits, mas encontramos também modeloscom células de 9, 18 e 36 bits para uso em aplicações que exigem detecção ecorreção automática de erros, como veremos mais adiante neste capítulo.

*** 75%***Figura11.13

Diagrama de blocosde um chip dememória SRAM.

Para endereçar os 8 kB no chip da figura 13, são necessários 13 bits deendereço (213 = 8192 = 8k). Portanto o chip tem 13 entradas para endereços:

A0, A1, A2, A3, A4, ... , A10, A11, A12

Neste chip de memória, as células são organizadas em uma matriz com 256linhas de 32 colunas. As 256 linhas usam 8 bits para serem endereçadas (A1-A8), e as 32 colunas usam 5 bits de endereços (A0, A9, A10, A11, A12). Ospinos I/O0, I/O1, ... , I/O7 são ligados ao barramento de dados. Nas leituras,os dados lidos da matriz de células passam pelos sense amplifiers(amplificadores que detectam os bits armazenados na célula selecionada) eos enviam para os pinos de saída. Nas operações de escrita, os dadospresentes no barramento são enviados ao buffer de entrada e entãoarmazenados na matriz de células, na posição selecionada pelo endereço. Ochip possui dois sinais de chip enable (CE1 e CE2) que servem para ativar oseu funcionamento. Esta ativação é feita quando CE1=0 e CE2=1. Para fazeruma gravação usamos WE (Write Enable) = 0, e para leitura, usamos OE(Output Enable) = 0.

Capítulo 11 - Memórias 11-11

Figura 11.14

Leitura de uma SRAM.

A figura 14 mostra o diagrama de tempo de uma operação de leitura emuma memória estática. Inicialmente o barramento de dados da memóriaencontra-se em alta impedância (tristate). Estando o endereço desejadopreviamente selecionado, fazemos CE1= 0 e CE2 = 1. A seguir ativamos osinal Output Enable, fazendo OE = 0. O barramento de dados, queanteriormente estava em Tristate, passa a apresentar os dados da célulaselecionada. Note que depois de um tempo T1 a partir do instante em que ochip é habilitado (CE1=0 e CE2=1), os dados já estão prontos para seremenviados para o barramento de dados, mas só o são efetivamente depois quetranscorre um tempo T2 com o sinal OE ativado. Passado um tempo T3depois que OE é desativado (OE=1), o barramento de dados voltará a ficarem alta impedância.

Figura 11.15

Escrita em uma SRAM.

A figura 15 mostra o diagrama de tempo de uma operação de escrita emuma RAM estática. É preciso que o endereço seja selecionado, que os doissinais de chip enable sejam ativados (CE1=0 e CE2=1) e que o sinal deoutput enable seja desativado (OE=1). Os dados a serem gravados sãofornecidos ao barramento de dados (Data IN Valid), e o sinal Write Enable éativado. Os dados na entrada devem permanecer estáveis durante um tempomínimo T1, com o sinal WE ativado em zero. Passado este período mínomo,o sinal WE pode ser desativado.

Células de memória estática

11-12 Hardware Total

Uma célula de memória básica tem o circuito equivalente ao da figura 16.Este circuito tem a capacidade de armazenar um bit. O bit armazenado podeser lido na saída Y. Para armazenar bits, as entradas R e S são ativadas deacordo com o valor desejado.

*** 35% ***Figura 11.16

Célula de memória.

Veremos a seguir como construir este circuito utilizando transitores MOS. Oprincípio básico da célula de memória é a ligação de dois inversores, comomostra a figura 17. Este circuito tem a capacidade de armazener um bit. Se aentrada do primeiro inversor tem um bit 0, sua saída tem o valor 1. Este 1,sendo enviado ao segundo inversor, produzirá um resultado 0 na saída. Este0 por sua vez é enviado à entrada do primeiro inversor, mantendo o circuitoestabilizado, com o valor 0 na saída (segundo inversor).

*** 35% ***Figura 11.17

Par de inversores ligados desta forma podem armazenar bits.

Na mesma figura, na parte inferior, vemos que nesta situação temos um bit 1na entrada do primeiro inversor, e na sua entrada teremo um bit 0. Este 0será recebido pelo segundo inversor, produzindo um bit 1 na sua saída.Sabemos portanto que o circuito armazena bits, mas é preciso algo que possaindicar o valor do bit a ser armazenado. O uso de portas NAND como nafigura 16, permite usar as entradas R e S para indicar o bit a ser gravado. Nafigura 18 vemos como o circuito completo é implementado na prática,utilizando 6 transistores MOS.

Capítulo 11 - Memórias 11-13

Figura 11.18

Célula de SRAM com tecnologia MOS.

A célula básica da figura 18 é formada pelos dois inversores CMOS,destacados em cinza (transistores T1/T2 e T3/T4). Alguns fabricantes utilizamresistores no lugar de T1 e T3, resultando em células de 4 transitores e 2resistores. Os dois transistores adicionais (T5 e T6) são usados para ler e paragravar bits. A operação de gravação consiste no seguinte:

a) Os sinais D e D’ são ativados de acordo com o bit que deve serarmazenado. Para armazenar um bit 1, fazemos D=1 e D’=0. Para armazenarum bit 0, fazemos D=0 e D’=1.

b) Estando definidos os valores de D e D’, o sinal SELECT é ativado. Issoativará os dois transistores ligados em D e D’, transferindo seus valores para acélula. Quando o sinal SELECT é desativado, o bit permaneceráarmazenado na célula. Note que o SELECT é definido a partir do endereçoda posição de memória a ser acessada.

A operação de leitura consiste em ligar o sinal SELECT, fazendo com que osvalores de D e D’ passem a indicar o bit armazenado na célula. Esses sinaispassam pelos amplificadores de saída, e de acordo com seus valores,fornecerão uma cópia do bit que estava armazenado na célula.

SRAM assíncrona x SRAM síncrona

Assim como ocorre com a DRAM, a SRAM pode ser dividida em inúmerascategorias: Assyncrhonous SRAM, Syncrhonous SRAM, Dual Port SRAM,SyncBurst SRAM, ZBL SRAM, NoBL SRAM, Pipelined Burst SRAM evários outros nomes. É verdade que existem excesso de nomes, pois ummesmo tipo de SRAM pode receber nomes diferentes de fabricantes

11-14 Hardware Total

diferentes. Todas essas tecnologias são baseadas na célula de memóriaapresentada na figura 18, e nas suas variações (6 transitores ou 4 transistores+ 2 resistores). A diferença está nos circuitos que são ligados ao redor damatriz de células.

Vamos apresentar então essas diversas tecnologias, começando pelasmemórias SRAM Assíncronas e Síncronas (Assynchronous SRAM eSyncrhonous SRAM). A SRAM Assíncrona é o tipo mais simples,apresentado na seção anterior “Funcionamento da SRAM”. Conformemostramos na figura 13, ao redor da matriz de células temos apenas osseletores de endereços, registradores e buffers de entrada e amplificadores ebuffers de saída. Ao contrário do que ocorre com a SRAM síncrona, que ésempre comandada a partir de um clock, a SRAM assíncrona não utilizaclock. Seus controles são assíncronos, e consistem em sinais como ChipEnable (CE), Output Enable (OE) e Write Enable (WE).

Essas memórias apresentavam tempos de acesso como 35, 25, 20 e 15 ns, eeram muito utilizadas para formar a cache de processadores 386, 486 e 586,bem como em aplicações que não exigiam clocks muito elevados. A maioriadesses processadores operavam com clocks externos de até 33 MHz, e algunsdeles chegando a 40 MHz (Ex: Am486DX2-80). Quanto mais elevado é oclock, menor deveria ser o tempo de acesso das SRAM assíncronas. Um486DX2-80 opera com clock externo de 40 MHz, o que corresponde a umciclo de 25 ns. O tempo de acesso da SRAM deveria então ser bemreduzido, entre 10 e 15 ns. Quando a SRAM não era suficientemente veloz,era preciso utilizar wait states, programados pelo CMOS Setup. Isto tornavao acesso à SRAM mais lento.

Com a introdução do Pentium e do barramento externo de 66 MHz, umnovo tipo de memória ainda mais veloz tornou-se necessário, pois o cliclo jáchegava a 15 ns. Note que já existiam memórias SRAM mais velozes, porémde baixa capacidade e extremamente caras. Apenas para ilustrar, saiba quedesde o início dos anos 90 existiam memórias SRAM com tempos de acessoinferiores a 0,1 ns. Essas memórias eram caríssimas e destinam-se ao uso emsupercomputadores e aplicações de alta velocidade. A indústria de memóriasnão é movida apenas pelo mercado de PCs, mas o peso deste mercado ébastante significativo. As memórias SRAM para PCs, apesar de não teremdificuldades tecnológicas na sua produção, precisam ter alta capacidade ebaixo custo. O que tem ocorrido em termos de tecnologia de memórias paraPCs é o desenvolvimento de novos tipos de memória com baixo custo, altacapacidade e alta velocidade, na medida certa para o uso em PCs.

Capítulo 11 - Memórias 11-15

Para permitir o funcionamento em freqüências a partir de 50 MHz, tornou-sevantajoso o uso de memórias sínronas. Essas memórias têm como principalcaracterística o fato de serem comandadas a partir de um clock. Atualmentetanto a SRAM como a DRAM usadas nos PCs são síncronas.

*** 75%***Figura11.19

Transferência dedados em uma SRAMsíncrona.

A figura 19 mostra o funcionamento de uma SRAM síncrona. Além do sinalCE (sinal que habilita o chip) e ADSC (sinal que dá início ao ciclo), temosum sinal de clock (CLK) que sincroniza todos os eventos. No instante T1, oendereço desejado (A1) deve ser entregue aos pinos do chip, e os sinais CE eADSC devem ser ativados. O barramento de dados, indicado como Q,encontra-se neste instante em repouso, ou seja, em tristate. No instante T2 écompletado mais um ciclo, mas os dados ainda não estão disponíveis.Apenas no instante T3, no final do segundo ciclo, o dado armazenado noendereço A1 estará presente no barramento de dados. A partir daí amemória entregará automaticamente, nos instantes T4, T5 e T6, os dadosarmazenados nas posições de memória seguintes (A1+1, A1+2 e A1+3). Porexemplo, ao fornecer o endereço 1000, a memória entregará os dadosarmazenados nos endereços 1000, 1001, 1002 e 1003. Como a entrega doprimeiro dado demorou 2 ciclos e os dados seguintes foram entregues emintervalos de 1 ciclo, dizemos que esta memória está operando no modo 2-1-1-1. Dizemos ainda que a memória tem latência de 2 ciclos. Memórias maislentas podem necessitar operar com latência de 3 ciclos (3-1-1-1, porexemplo). A latência é necessária para que os circuitos internos da memóriatenham tempo de encontrar a célula desejada. Uma vez encontrada, ascélulas seguintes são localizadas de forma mais rápida, já que ocupamposições consecutivas.

Enquanto a SRAM assíncrona tem sua velocidade especificada pelo seutempo de acesso, ou seja, o tempo que demora para encontrar o dadoendereçado (medido em nano-segundos), a SRAM síncrona tem suavelocidade indicada pelo seu clock, ou seja, o máximo clock com o qualpode operar (medido em MHz). Eventualmente a SRAM síncrona pode ter

11-16 Hardware Total

também sua velocidade indicada pelo tempo de ciclo, que é igual ao inversodo clock. Veja por exemplo os tempos de ciclo e clocks das versões do chipMT58L64L18PT, fabricado pela Micron Technology. Este chip tem 64kcélulas de 18 bits, e é oferecido para clocks de 100, 133 e 166 MHz.

Modelo Ciclo ClockMT58L64L18PT-10 10 ns 100 MHzMT58L64L18PT-75 7,5 ns 133 MHzMT58L64L18PT-6 6 ns 166 MHz

As SRAM síncronas dividem-se por sua vez em diversas outras categorias,dependendo do seu modo de operação.

Modo Pipelined

As memórias SRAM síncronas já apresentavam um melhoramento dedesempenho em comparação com as assíncronas, para freqüências de 50, 60e 66 MHz. Entretanto logo surgiu a necessidade de operar com freqüênciasainda mais elevadas, não permitidas pela tecnologia tradicional com a qualeram construídas as primeiras SRAM síncronas. Para premitir freqüências deoperação mais elevadas, os fabricantes de memória introdiziram o modopipelined.

A idéia é bastante simples e resulta em clocks maiores, mesmo utilizandocélulas de memória idênticas. Estamos falando da época em que foiultrapassada a barreira dos 66 MHz, mas levando em conta memórias maisatuais, a mesma tecnologia que permite construir memórias atuais “nãopipelined” de 133 MHz permite também produzir memórias pipelined de166 MHz.

Figura 11.20

Diferença entre a SRAM Pipelined e anon-Pipelined.

Capítulo 11 - Memórias 11-17

A diferença entre os dois tipos está mostrado na figura 20. Um chip dememória SRAM síncrona comum (chamado de non-pipelined ou flow-throug) tem em seus buffers de saída o valor idêntico ao apresentado pelossense amplifiers, que por sua vez reproduzem o valor lido da matriz decélulas de memória. Os valores presentes no barramento de dados do chipprecisam permanecer estáveis durante um tempo mínimo, para que oprocessador e o chipset possam fazer a sua leitura. A necessidade destetempo mínimo impede que a matriz de células dê início ao próximo ciclo deleitura, ou seja, ela precisa “esperar um pouco”. Nas memórias pipelined, osdados recebidos da matriz de células passam pelos amplificadores e sãoarmazenados em registradores de saída (output registers). Ao contrário dobuffer, que se limita a passar adiante os valores lidos nas suas entradas, oregistrador é capaz de memorizar suas entradas e manter esses valoresmemorizados nas suas saídas, mesmo que as entradas posteriormentemudem de valor. Graças aos registradores, a saída do barramento de dadosda memória fica estabilizada, e a matriz de células pode ser novamenteusada para o próximo acesso. Como graças ao registrador a matriz de célulasnão precisa mais “esperar” a leitura do dado pelo processador, temos ummaior aproveitamento, resultando em maior velocidade.

Apesar de possibilitar operar com clocks mais elevados, uma SRAMpipelined tem a desvantagem de exigir um ciclo a mais para o carregamentodo registrador. Enquanto os modelos não pipelined operam no modo 2-1-1-1(5 períodos), os modelos pipelined operam com 3-1-1-1 (6 períodos), porémcom freqüêncais mais elevadas. Por exemplo, em 66 MHz (ciclo de 15 ns),uma transferência de uma SRAM não pipelined demoraria 75 ns (5 x 16 ns),mas a 100 MHz (ciclos de 10 ns) uma transferência de uma pipelined SRAMdemoraria 60 ns (6 x 10 ns). A mesma SRAM não conseguiria operar nomodo 2-1-1-1 a 100 MHz, e exigiria usar o modo 3-2-2-2, bem mais lento.Portanto para clocks acima de 66 MHz, a SRAM do tipo pipelined começa alevar vantagem sobre memórias SRAM não pipelined de tecnologiasemelhante (com células obtidas pelo mesmo processo de fabricação, e emconseqüência, de mesmo preço).

Ao adotarem a operação em modo pipeline, as memórias SRAM síncronaspassaram a ser chamadas de Pipelined Burst SRAM. As memórias SRAMsíncronas porém sem o recurso pipeline passram a ser chamadas apenas deBurst SRAM, Syncrhonous Burst SRAM, SyncBurst SRAM ou Flow-ThroughSyncBurst SRAM. Note que apesar desses nomes, as memórias SRAMPipelined também são síncronas e também operam em modo burst, portantopodem ser ainda chamadas de Pipelined Syncrhonous Burst SRAM.

11-18 Hardware Total

Os dois tipos de Syncronous Burst SRAM foram criados especificamentepara operar como caches secundárias em placas de CPU equipadas comprocessadores Pentium e superiores. Até hoje encontramos essas memóriasformando a cache L2 nas placas com Socket 7 (Ex: K6-2). Também foramutilizadas na formação da cache L2 discreta dos processadores comencapsulamento em cartucho, como Pentium II, Pentium III Katmai e nasprimeiras versões do AMD Athlon.

DDR e QDR

Memórias DDR SDRAM foram criadas visando a operação em clocks aindamais delevados. Elas utilizam a técnica DDR (Double Data Rate), na qualduas matrizes de células independentes são acessadas por dois clocks (nafigura 21 os clocks são K e K#). O sinal K# tem o valor oposto de K, ousejam tratam-se de clocks complementares, requisito comum em todos osdispositivos que operam com DDR.

Na figura 21, o endereço é fornecido à memória e é ativado o sinal LD#. Osinal R/W# deve permanecer com o valor 1, indicando operação de leitura.Na segunda descida do clock K, o primeiro dado estrá disponível. Os trêsdados seguintes serão fornecidos a cada meio período de K, portanto sãoduas transferências por cada ciclo, característica do modo double data rate.

Figura 11.21

Ciclo de leitura em uma DDR SRAM.

A tabela a seguir mostra como exemplo, as versões do chip DDR SRAMMT57V256H36PF, produzido pela Micron Technology. São oferecidasversões de 166, 200, 250 e 300 MHz. Note que esses clocks, ao utilizaremdouble data rate, resultarão em equivalentes a 333, 400, 500 e 600 MHz.

Modelo Ciclo Clock

Capítulo 11 - Memórias 11-19

MT57V256H36PF-3.3 3.3 ns 300 MHzMT57V256H36PF-4 4 ns 250 MHzMT57V256H36PF-5 5 ns 200 MHzMT57V256H36PF-6 6 ns 166 MHz

Memórias QDR (Quad Data Rate), ao contrário do que possa parecer, nãosão como DDRs que fazem 4 transferências por ciclo. São na verdadememórias com dois barramentos de dados independentes, um de entrada eum de saída. Cada um deles opera com double data rate. Quando ambosestão operando ao mesmo tempo, temos como resultado uma taxa de dadosquadruplicada em relação ao clock.

Memórias DDR SRAM e QDR SRAM são indicadas para aplicações de altavelocidade, como cache, memória de vídeo em placas de alto desempenho,redes e interfaces de alta velocidade.

ZBT ou NoBL SRAM

Essas são memórias SRAM síncronas, capazes de operar no modo burst,oferecidas em versões pipelined e flow-throug, mas com uma sutil diferença:Podem fazer a transição imediata entre um ciclo de leitura e um ciclo deescrita, sem a necessidade de pausas (latency ou turnaround). Todos osdemais tipos de SRAM síncrona têm a limitação de não poderem passarimediatamente de uma leitura para escrita, ou vice-versa. A razão disso é queo sistema de endereçamento interno da memória tem diferenças, nas leiturase nas escritas. É preciso então tempo para a memória desativar internamenteo endereçamento da leitura e ativar o endereçamento da escrita, e vice-versa.Memórais ZBT (Zero Bus Turnaround) ou NoBL (No Bus Latency) ouNetwork SRAM – o nome varia conforme o fabricante – têm seus circuitosinternos de endereçamento organizado de forma que o mesmoendereçamento usado para a leitura é usado também para a escrita, portantonão tem necessidade esperar pela desabilitação de um circuito e ahabilitação de outro quando são feitas inversões entre operações de leitura egravação.

Dual Port SRAM

Este é um tipo especial de memória que pode ser acessada simultaneamentepor dois barramentos independentes. A figura 22 mostra o diagrama de umamemória Dual Port.

11-20 Hardware Total

*** 75%***Figura11.22

Diagrama de umaDual Port SRAM.

Como vemos, existem dois conjuntos de sinais independentes, combarramento de dados, endereços e controle. Até os circuitos internos sãosimétricos e independentes. Ambos acessam uma única matriz de células dememória.

Note que existem muitos casos em que são usadas memórias comuns e existemais de um circuito que faz acessos. A memória DRAM de uma placa deCPU, por exemplo, é acessada pelo processador, pelo chipset, pela placa devídeo AGP, pelas interfaces de disco rígido e por outras interfaces queoperam com DMA (acesso direto à memória). A diferença é que nessescasos, apenas um dispositivo pode acessar a memória a cada instante, etodos os demais têm que aguardar. Já no caso das memórais Dual Port, osdois dispositivos podem realizar acesso simultâneos. A matriz de células édividida em bancos independentes, de modo que é mínima a possibilidadede colisão, ou seja, quando ambos os circuitos querem acessar o mesmobanco. Apenas quando ocorre colisão, um circuito terá que esperar peloacesso.

Existem inúmeras aplicações para memórias Dual Port. Um exemplo é acache externa em placas com múltiplos processadores (não estamos falandode PCs, mas de máquinas mais sofisticadas). Placas de vídeo de altodesempenho também podem fazer uso deste tipo de memória. Ao mesmotempo em que a memória de vídeo está sendo lida e transferida para omonitor, o chip gráfico pode fazer seus acessos a esta mesma memória.Placas digitalizadoras de vídeo de alto desempenho também podem usar omesmo recurso.

Capítulo 11 - Memórias 11-21

1T-SRAM

Como vimos, as células de memória SRAM são formadas por 6 transistores,ou então por 4 transitores e 2 resistores. Estamos nos referindo às memóriasque usam a tecnologia MOS, já que existem vários outros tipos. Um exemplosão as memórais bipolares, que são ainda mais velozes, porém menos densas,mais caras e com maior dissipação de calor. Existe ainda um tipo especial dememória SRAM chamada de 1T-SRAM. Cada célula utiliza apenas umtransitor e um capacitor. Este capacitor é o responsável pelo armazenamentode uma carga que representa um bit, e é na verdade construído com omesmo material usado na formação dos transitores. Esta tecnologia foi criadapela MoSys, que por sua vez a licenciou para vários outros fabricantes, comoUMC, NEC e Sony. Note que este tipo de célula de memória não é naverdade estático. Trata-se de uma memória dinâmica, porém é acrescida decircuitos internos (refresh transparente, por exemplo), que a tornam do pontode vista externo, similar a uma SRAM.

Memórias DRAM que fazem refresh interno existem há vários anos, e sãochamadas de RAM pseudo-estáticas.

Tempo de acesso

O tempo de acesso é um parâmetro muito importante, relacionado com avelocidade das memórias. Aplica-se especificamente às memórias SRAMassíncronas, e indica o tempo necessário para que os dados estejamdisponíveis, medido a partir do instante que o chip de memória estáhabilitado, através da entrada CE (chip enable). Na figura 23, o tempo deacesso é T1. Note que os dados estarão disponíveis desde que o sinal OE(output enable) seja selecionado previamente. Se não for selecionado, osdados não estarão disponíveis.

Figura 11.23

Tempo de acesso de uma SRAMassíncrona.

No chip de memória da figura 24 encontramos a inscrição IS61C256AH-20N.O sufixo –20 indica que seu tempo de acesso é de 20 ns. Este chip faz parteda cache externa de uma placa de CPU 486.

11-22 Hardware Total

*** 35% ***Figura 11.24

Chip de SRAM com tempo de acesso de 20 ns.

Não faz sentido falar em “tempo de acesso” no caso das memórias síncronas.Ao invés disso especificamos o seu clock (ou o período de duração do ciclo)e a latência. Nos chips encontramos sufixos que indicam o clock ou operíodo, dependendo do fabricante. O período é igual a 1 segundo divididopelo clock. Por exemplo, um clock de 100 MHz corresponde a um períodode 10 ns.

Ciclo Clock Ciclo Clock20 ns 50 MHz 7 ns 143 MHz15 ns 66 MHz 6 ns 166 MHz13,3 ns 75 MHz 5 ns 200 MHz12 ns 83 MHz 4 ns 250 MHz10 ns 100 MHz 3,3 ns 300 MHz8 ns 125 MHz 3 ns 333 MHz7,5 ns 133 MHz 2,5 ns 400 MHz

Quando dizemos que um chip de memória tem ciclo de 10 ns, não querdizer que demorará 10 ns até entregar um dado. Dependendo do tipo dememoria, irá demorar 2 ou 3 ciclos par entregar o primeiro dado (isto é oque chamamos de latência), o que neste caso corresponde a 20 ou 30 ns. Apartir do fornecimento do primeiro dado, os três dados seguintes sãoentregues a cada 10 ns, desde que a memória esteja operando em modoburst.

Wait states

O wait state é um recurso que permite o uso de memórias lentas comprocessdores rápidos. Para isso basta “avisar” o processador para que espereum pouco mais antes de ler os valores do seu barramento de dados (nasoperações de leitura), ou que espere um pouco mais antes de finalizar umaescrita, para dar tempo às memórias para receberem o dado. Ofuncionamento é exemplificado na figura 25.

Capítulo 11 - Memórias 11-23

*** 75%***Figura11.25

Acessos à memória.

a) sem wait stateb) com 1 wait state

Ao fazerem acessos aleatórios na memória externa, o processador esperanormalmente 2 ciclos. O ciclo tem duração de acordo com o clock externodo processador. Por exemplo, com clock externo de 100 MHz, o ciclo temduração de 10 ns. Uma operação normal de leitura, com duração de 2 ciclos,é mostrada na parte A da figura 25. Durante o primeiro ciclo (T1) oprocessador deve entregar o endereço ao barramento, juntamente comoutros sinais de controle. No final do ciclo seguinte, o processador testa osinal da sua entrada de controle RDY (Ready). Se estiver em nível 0, significaque o ciclo pode ser finalizado, e que o dado estará disponível no seubarramento de dados.

Quando as memórias não são suficientemente velozes, o seu circuito decontrole (faz parte do chipset) pode retardar o envio do sinal RDY. Se nofinal do ciclo T2 o sinal RDY não estiver ativado (ou seja, com valor 0), oprocessador automaticamente esperará mais um ciclo. Esta “prorrogação”,representada pelo segundo T2 na parte B da figura 25, é o que chamamos de1 wait state. O processador pode aguardar mais 2, 3 ou quantos wait statesadicionais forem necessários, até que o circuito controlador da memória ativeo sinal RDY com valor 0, o que finaliza o ciclo. No nosso exemplo, usar umwait state aumentou o tempo total da leitura para 30 ns. Com 2 wait statesteríamos 40 ns, com 3 wait states teríamos 50 ns, e assim por diante. Cabe aoBIOS da placa de CPU programar o chipset com o número recomendado dewait states suficiente para as memórias em uso.

Note que os processadores possuem dois pinos de Ready. O primeiro é oRDY que acabamos de apresentar, e se aplica a leituras e escritas aleatórias,ou seja, que não usam o modo burst. O segundo controle é o BRDY, que éusado quando o processador faz leituras e escritas no modo burst. Nestamodalidade são feitas transferências em grupos de 4. Uma transferêncianormal em modo burst obedece à temporização 2-1-1-1, mas através do sinalBRDY, o processador pode operar em outros modos, como 3-1-1-1, 3-2-2-2, 4-2-2-2, e assim por diante. Portanto os wait states podem ser usados tanto emoperações assíncronas quanto síncronas.

11-24 Hardware Total

RAM dinâmica, modos FPM e EDOMemórias estáticas têm células relativamente grandes, em geral com 6transistores. Como resultado, essas memórias são pouco densas, ou seja, nãopermitem a obtenção das elevadas capacidades de memória exigidas pelosPCs modernos, a menos que utilizemos um número muito grande de chips.Além de exigir muito espaço, o uso de memórias estáticas resulta em custobem elevado.

As células de DRAM

As memórias dinâmicas (DRAM) foram criadas visando obter redução deespaço, aumento de capacidade e redução de custo. Uma célula de DRAM éformada por um transistor e um capacitor, como vemos na figura 26. Otamanho do capacitor é pequeno em comparação com o do transitor,portanto o espaço ocupado é o de praticamente um transistor por célula.

*** 35% ***Figura 11.26

Uma célula de DRAM.

O funcionamento desta célula é extremamente simples. Para gravar um bit,basta colocá-lo em D e ativar a linha SELECT. Isto fará com que a tensão emD seja transferida para o capacitor. A seguir a linha SELECT é desligada, e ocapacitor irá menter através de sua carga, o valor do bit armazenado.

A operação de leitura é um pouco mais complexa. Inicialmente a linha D écarregada com a tensão de alimentação, através da sua capacitância. Quandoa linha SELECT é ligada, a carga armazenada no capacitor da célula e acarga armazenada na linha D são distribuídas, resultando em tensões iguais.Se o capacitor estava originalmente descarregado (bit 0), ocorrerá umapequena redução na tensão existente em D. Se o capacitor já estavacarregado (bit 1), não ocorrerá esta redução. O novo valor de D seráportanto igual ao original (o que indica bit 1) ou sensivelmente menor que ooriginal (o que indica bit 0). Os chamados sense amplifiers percebem esta

Capítulo 11 - Memórias 11-25

diferença e identificam se o bit armazenado era 1 ou 0. Note que esta leituraé destrutiva, pois altera o valor armazenado no capacitor. Terminada aleitura, o bit identificado é novamente gravado na célula, o que restaura seuvalor original.

Além do funcionamento desta célula ser relativamente complicado, existemais um agravante: o capacitor se descarrega depois de alguns milésimos desegundo. Para que os bits não sejam perdidos é preciso que toda a memóriaseja periodicamente lida, restaurando as cargas dos capacitores. É o quechamamos de refresh.

A matriz de células de memória DRAM é um grande grupo de linhasSELECT que se cruzam com linhas D. Para endereçar uma célula dememória é preciso selecionar a linha SELECT e a linha D, em função doendereço desejado.

A figura 27 mostra de forma simplificada, a construção de uma célula deDRAM. A célula real é mais complexa, tridimensional. As várias linhas D eSELECT são dispostas de forma perperndicular, formando uma matriz.

Figura 11.27

Construção de uma célula de DRAM.

É comum chamar a matriz de células de DRAM de “matriz capacitiva”. Nãodeixa de estar correto, pois os capacitores são os responsáveis peloarmazenamento dos bits. Note entretanto que o transitor ocupa um espaçobem maior, como vemos na figura 27. O capacitor é mantido com o menortamanho possível para que o processo de fabricação resulte em chips commais células. Capacitores maiores só teriam como vantagem, a permanênciada carga por um período maior, mas ainda assim na faixa de milésimos desegundo, não resolvendo o problema da necessidade de refresh.

11-26 Hardware Total

Estrutura interna de uma DRAM

A figura 13 mostra de forma simplificada, a estrutura interna de uma DRAM.A matriz de células é dividida em linhas e colunas. Para acessar a matriz épreciso que o chip de memória receba primeiro o número (ou endereço) dalinha desejada, e depois o endereço da coluna. Os dados lidos são enviadospara o barramento de dados. O mesmo ocorre na operação de escrita, sendoque os dados são recebidos do barramento de dados e colocados na célulaselecionada. Dois sinais RAS e CAS servem para indicar quando estãopresentes os endereços da linha e coluna. Alguns chips necessitam receberum sinal externo MA, para comandar o demultiplexador de endereços,enviando os números da linha e coluna para os circuitos apropriados. Amaioria dos chips de DRAM mais modernos não utiliza este controle,fazendo sua geração internamente em função dos sinais RAS e CAS.

*** 75% ***Figura11.28

Diagrama simplificadode uma DRAM.

A figura 29 mostra o diagrama completo de um chip de memória DRAM,com capacidade de 16M x 4. Possui portanto 16 M células de memória, ecada uma delas possui 4 bits. Esses bits são representados no diagrama comoDQ0, DQ1, DQ2 e DQ3. Para endereçar essas 16M células, o chip tem 12bits de endereço. Como o endereço é fornecido em duas etapas (linha ecoluna), são ao todo 24 bits, exatamente o necessário para endereçar 224 =16M células.

Capítulo 11 - Memórias 11-27

*** 75%***Figura11.29

Diagrama completode um chip DRAM.

Observe ainda na figura 29 que como o chip do exemplo tem “células de 4bits”, existem ao todo 4 bancos de células independentes. Cada um delesrecebe 4096 linhas (sinais SELECT das figuras 26 e 27) e 4096 colunas, quesão os sinais de dados (são os sinais D nas figuras 26 e 27). Vemos ainda ochip do exemplo tem um módulo chamado REFRESH CONTROLLER.Este módulo é capaz de realizar internamente as operações de refresh (é oque chamamos de self refresh), aliviando o trabalho dos circuitos externos.Tradicionalmente, o refresh tem sido feito pelo controlador de memóriaDRAM (que faz parte do chipset). Em aplicações nas quais o sistema temque ficar em estado de espera, o chipset pode ser desligado e o próprio chipde memória se encarrega de realizar internamente o refresh. Quando o chipde SRAM não faz self refresh, cabe ao controlador de memória realizar estaoperação, que consiste em fazer leituras periódicas nas linhas da matriz.

Acessando uma DRAM

Como vimos, o mecanismo de acesso às células da DRAM é bem maiscomplexo que o da SRAM. Suas células de memória são organizadas emuma matriz, formada por linhas e colunas. Por exemplo, uma DRAM com 1Mbit é formada por uma matriz quadrada, com 1024 linhas e 1024 colunas(podem existir formatos diferentes, como 2048x512). Para acessar uma dessascélulas de memória, é preciso primeiro fornecer à DRAM o endereço dalinha, seguindo de um sinal chamado RAS (Row Address Strobe). Servepara indicar que o endereço da linha está pronto. A seguir deve serfornecido à memória o endereço da coluna, seguido do sinal CAS (ColumnAddress Strobe). Passado mais um pequeno tempo, o dado daquela célulade memória cujos números da linha e coluna foram fornecidos, estarápresente e pronto para ser lido pelo processador ou pelo chipset.

11-28 Hardware Total

Note que os processadores não “enxergam” a memória desta forma, nãoestão preparados para gerar sinais RAS e CAS, nem para dividir o endereçoem linha e coluna. O processador simplesmente indica o endereço dememória que deseja acessar, e a seguir envia um comando de leitura ouescrita. Cabe ao chipset converter os sinais de acesso à memória vindos doprocessador, em sinais compatíveis para a DRAM. Esta é a função de umaparte do chipset chamada Controlador de DRAM.

Figura 11.30

O Chipset é encarregado de controlar oacesso à DRAM.

O trabalho completo do chipset (controlador de DRAM) para obter umdado proveniente da DRAM é resumido na seguinte seqüência:

1) Chipset recebe do processador, o endereço da célula a ser acessada2) Chipset desmembra o endereço em duas partes: linha e coluna3) Chipset envia à DRAM, o endereço da linha4) Chipset envia à DRAM o sinal RAS5) Chipset envia à DRAM o endereço da coluna6) Chipset envia à DRAM o sinal CAS7) A DRAM acessa o dado armazenado nesta célula e o entrega ao chipset8) Chipset obtém o dado e o encaminha para o processador

Cada uma dessas micro-etapas leva um pequeno tempo para ser executada.O tempo total necessário para que o processador receba o dado solicitado damemória é igual à soma desses tempos. É preciso que você entenda bem estemecanismo para que possa compreender as memórias mais novas.

Capítulo 11 - Memórias 11-29

Figura 11.31

Ciclo de leitura em uma DRAM.

A figura 31 mostra o ciclo de leitura em uma DRAM. Começa com aativação do sinal RAS, que é colocado em nível 0. Neste momento obarramento de endereços da memória (ADDR) deve estar preparado com onúmero da linha (ROW) a ser acessada. Após um tempo especificado, obarramento de endereços deve receber o número da coluna, e a seguir deveser ativado o sinal CAS. Logo a seguir, o barramento de dados (DQ), queantes estava em tristate, entregará o dado lido da célula selecionada. Noteque para isso é preciso que o sinal OE (Output Enable) seja ativado em zero.Chamamos tempo de acesso da memória DRAM, o tempo transcorridoentre a ativação do RAS e a chegada do dado lido. Uma memória comespecificação –50, por exemplo, demorará 50 ns para entregar o dado lido apartir do instante da ativação do RAS.

Utilizando a estutura básica da matriz de células de DRAM, vários outrostipos de memória têm sido desenvolvidos nos últimos anos. As principaisforma a FPM DRAM, EDO DRAM, SDRAM, DDR SDRAM, RDRAM.Todas elas são mais avançadas que a DRAM original, resultando em maiorvelocidade, mas ainda assim todas utilizam matrizes de células idênticas. Adiferença está nos circuitos internos que dão acesso a essas células. Porexemplo, usando 4 matrizes de células operando de forma simultânea, temosa SDRAM. Este tipo de memória opera de forma síncrona, e demora umtempo inicial para acessar o primeiro dado, e a seguir transfer os 3 dadosseguintes (lidos das outras três matrizes de células) em rápida velocidade.Chips construídos como duas SDRAM operando em parlelo deram origem àDDR SDRAM, que são duas vezes mais rápidas. Usando 16 ou 32 matrizesfuncionando em conjutno, temos a RDRAM (Rambus RAM).

FPM DRAM

Essas memórias foram usadas nos PCs antigos, em praticamente todos os PCs386, 486 e 586 e nos primeiros PCs Pentium. No passado eram encontradasno encapsulamento DIP, depois foram produzidas em módulos SIPP eSIMM/30. É correto dizer que todos os módulos SIPP e SIMM eramformados por chips de FPM DRAM. Chips de FPM DRAM também foram

11-30 Hardware Total

utilizados em módulos SIMM/72, mas não é correto dizer que todo móduloSIMM/72 é do tipo FPM DRAM. Era comum encontrar módulos SIMM/72tanto com FPM DRAM como com EDO DRAM.

Memórias FPM DRAM são capazes de operar no chamado Fast Page Mode.A idéia é muito simples. A maioria dos acessos à memória são feitos emcélulas consecutivas. Considere por exemplo um grupo de 4 acessos àsposições consectivas mostradas na figura 32.

Figura 11.32

Quatro células de memória consecutivas.

Os endereços dessas 4 células consecutivas são:

Linha 277, coluna 320Linha 277, coluna 321Linha 277, coluna 322Linha 277, coluna 323

Lembre-se que cada linha é acompanhada de um sinal RAS, e cada coluna éacompanhada de um sinal CAS. Ora, quando tomamos posiçõesconsecutivas de memória, as linhas são as mesmas e o que varia é apenas acoluna. Seria então uma perda de tempo repetir no segundo, terceiro equarto acessos, o número da linha. Basta indicar o número da coluna. Ochamado Fast Page Mode tem como principal característica, o acesso a váriascolunas de uma mesma linha, bastando que sejam fornecidos os endereçosdas colunas, seguidos do sinal CAS, sem a necessidade de repetir o númeroda linha.

O acesso à primeira posição de memória de um grupo é feito pelo mesmomecanismo já explicado para as DRAMs convencionais:

1) Chipset recebe do processador, o endereço da célula a ser acessada

Capítulo 11 - Memórias 11-31

2) Chipset desmembra o endereço em duas partes: linha e coluna3) Chipset envia à DRAM, o endereço da linha4) Chipset envia à DRAM o sinal RAS5) Chipset envia à DRAM o endereço da coluna6) Chipset envia à DRAM o sinal CAS7) A DRAM acessa o dado armazenado nesta célula e o entrega ao chipset8) Chipset obtém o dado e o encaminha para o processador

Os acessos seguintes são mais rápidos porque exigem menos etapas: não épreciso fornecer o sinal RAS nem o endereço da linha:

5) Chipset envia à DRAM o endereço da próxima coluna6) Chipset envia à DRAM o sinal CAS7) A DRAM acessa o dado armazenado nesta célula e o entrega ao chipset8) Chipset obtém o dado e o encaminha para o processador

Digamos que o tempo total para realizar as 8 etapas (1 a 8) do acesso àprimeira célula seja 100 ns, e que para cada um dos três acessos seguintes, otempo das etapas (5 a 8) seja de 40 ns. Se a DRAM não fosse do tipo FPM,todos os acessos seriam iguais ao primeiro, e o tempo total seria de 100 + 100+ 100 + 100, ou seja, 400 ns. Com a FPM DRAM, o tempo total seria 100 +40 + 40 + 40, ou seja, 220 ns, bem mais rápido.

Poderíamos a princípio pensar que o chipset “cronometra” 100 ns para oprimeiro acesso, e depois 40 ns para cada um dos acessos seguintes. É maisou menos isso o que ocorre, entretanto o chipset não conta o tempo em ns.Sua base de tempo é o ciclo de clock, a sua menor unidade de tempo. Aduração de um ciclo de clock depende do clock utilizado pelo chipset, queem geral é o mesmo clock externo do processador:

Clock Período Clock Período33 MHz 30 ns 95 MHz 10,5 ns40 MHz 25 ns 100 MHz 10 ns50 MHz 20 ns 133 MHz 7,5 ns60 MHz 16,6 ns 166 MHz 6 ns66 MHz 15 ns 200 MHz 5 ns75 MHz 13,3 ns 266 MHz 3,75 ns83 MHz 12 ns 400 MHz 2,5 ns

De um modo geral, para obter o valor do período, dado em ns, basta dividir1000 pelo número de MHz. Considere por exemplo um Pentium-200,operando com clock externo de 66 MHz, ou seja, ciclos de 15 ns. Todas assuas operações são feitas em múltiplos de 15 ns, ou seja, 15 ns é a sua

11-32 Hardware Total

unidade básica de tempo. Aquela FPM DRAM que precisa operar com atemporização 100/40/40/40, será controlada pelo chipset com a temporização7-3-3-3. São 7x15 = 105 ns para o primeiro acesso e 3x15 = 45 ns para cadaum dos acessos seguintes.

Os processadores modernos, bem como seus chipsets, são orientados parafazer transferências em blocos de 4 acessos consecutivos. Entretanto asmemórias FPM podem realizar várias transferências consecutivas em FastPage Mode, desde que todas elas dentro da mesma linha. Em um casoextremo, considerando uma matriz de 1024x1024, podemos dar início àleitura da primeira coluna de uma linha, e ler todas as 1023 célulasconsecutivas desta mesma linha. Processadores e chipsets fazem por padrãoleituras de 4 células consecutivas, mas outros dispositivos podem tirar melhorproveito lendo um número maior de células. Por exemplo, uma placa devídeo ao usar memórias FPM, pode fazer corresponder cada linha do vídeo auma linha da DRAM, e usar transferências em Fast Page Mode para enviaros pixels consecutivos para o monitor.

Figura 11.33

Lentura em Fast Page Mode.

A figura 33 mostra o diagrama de tempo de um ciclo em Fast Page Mode,com 3 leituras consecutivas. Como dissemos, o número de transferênciasconsecutivas pode variar, desde que dentro da mesma linha. O tempo deacesso da memória, acrescido de um intervalo inicial para a prepareção doendereço da linha, é o tempo total que é preciso esperar até que o primeirodado seja acessado. A partir daí, mantendo a linha RAS ativada, alteramos oendereço da coluna e aplicamos pulsos em CAS. O intervalo entre achegada de dois dados consecutivos será TPC, que é um tempo bem menorque o tempo de acesso da memória. Quando o RAS é desativado, termina atransferência em Fast Page Mode.

Figura 11.34

Informações do manual de um chip deFPM DRAM.

Capítulo 11 - Memórias 11-33

Nos manuais dos chips de memória existem todas as informações sobre a suatemporização. A figura 34 mostra a tabela extraída do manual de um certochip de FPM DRAM. Este chip é oferecido em duas versões: -5 e –6, o quecorresponde a tempos de acesso (tRAC) de 50 e 60 ns, respectivamente.Encontramos outras informações, como o tRC, que é o tempo total dos ciclosde leitura. Note que o tempo total do ciclo é bem maior que o tempo deacesso, pois leva em conta todas as operações envolvidas, não só o acesso.Outra informação importante é o tPC, o tempo de ciclo em Fast Page Mode.Note que esses dois chips têm esses tempo iguais a 30 e 35 ns,respectivamente, que são valores consideravelmente menores que o tempode acesso. Podemos ainda encontrar outras informações, como o tCAC, queé o tempo de acesso medido a partir da ativação do CAS.

Em uma placa de CPU cabe ao chipset receber os dados da DRAM paraenviá-los ao processador ou à cache. O chipset deve ser ajustado de acordocom a velocidade da DRAM em uso. Este ajuste é feito através do CMOSSetup, e normalmente aparece com nomes como “DRAM Read Cycle” e“DRAM Write Cycle”. Digamos que a placa de CPU em uso opere comclock externo de 66 MHz, o que corresponde a ciclos de 15 ns. Digamos queestejamos usando memórias FPM DRAM com as seguintes características:

tRAC = 70 nstPC = 40 ns

Como o período de clock é de 15 ns, são necessários 5 ciclos (75 ns) paraenglobar o tempo de acesso, e 3 ciclos (45 ns) para englobar tPC. Ciclosadicionais são necessários no início do primeiro acesso, pois como vimos, otempo de acesso é contado a partir da ativação do RAS, mas o ciclo deleitura começa antes disso. Se reservarmos 2 ciclos iniciais para o início datransferência, o primeiro acesso seria feito após 7 ciclos. A memória estariaoperando portanto com a temporização 7-3-3-3. Com memórias um poucomais rápidas, de 60 ou 50 ns, pode ser possível utilizar menos ciclos, e operarcom temporizações como 6-3-3-3, 7-2-2-2 ou 6-2-2-2. Tudo depende de seremreduzidos os valores do tempo de acesso (tRAC) e do ciclo de FPM (tPC).Nas placas de CPU que usavam este tipo de memória, o CMOS Setup usauma configuração padrão com valores grandes, para que a placa funcionecom memórias de várias velocidades. Ao utilizar memorias mais rápidas,tempos menores podem ser usados, mas o ajuste é feito manualmente eexperimentalmente no CMOS Setup, em um processo de “envenenamento”.

11-34 Hardware Total

Quanto ao encapsulamento, a maioria das memórias FPM DRAM, assimcomo a EDO DRAM e outras mais modernas, apresentam em geral osformatos SOJ e TSOP, mostrados na figura 35 e já apresentados no iníciodeste capítulo. O número de pinos dependerá da capacidade, do número debits de dados e dos bits de endereços. Observe na figura 35 que os pinosrepresentam o barramento de dados (DQ), de endereços (A0, A1, etc.) e ossinais de controle, como RAS, CAS, OE, WE, etc. Existem ainda os pinos dealimentação (VCC) e terra (VSS ou GND).

Figura 11.35

Chips de memória com encapsulamentosSOJ e TSOP.

EDO DRAM

Bastante comum a partir de 1995, a EDO (Extended Data Out) DRAM éobtida a partir de um melhoramento de engenharia nas memórias FPMDRAM. A idéia é bastante simples. Após completar um ciclo de leitura efornecer os dados lidos, pode dar início a um novo ciclo de leitura, masmantendo em suas saídas, os dados da leitura anterior. O resultado é umaeconomia de tempo, o que equivale a um aumento de velocidade. Ésuportada por todas as placas de CPU Pentium, a partir das que apresentamo chipset i430FX. As primeiras placas de CPU Pentium II também assuportavam, porém essas memórias caíram em desuso, sendo logosubstituídas pela SDRAM tão logo o Pentium II se tornou comum (1998).

Módulos de memória EDO DRAM utilizaram muito o encapsulamentoSIMM/72 (assim como a FPM DRAM). Também é possível encontrarmódulos de memória EDO DRAM usando o encapsulamento DIMM/168,porém são mais raras nesta versão.

Memórias EDO também são capazes de operar em Page Mode, ou seja,fazer transferências de vários dados consecutivos, com a ativação apenas dosinal CAS. Também são chamadas de Hyper Page Mode, enquanto as

Capítulo 11 - Memórias 11-35

memórias FPM comuns passaram a ser chamadas também de SPM(Standard Page Mode).

Figura 11.36

Funcionamento da EDO DRAM.

O primeiro acesso a uma memória EDO é feito no mesmo tempo que emuma memória FPM, mas a sua vantagem aparece nos acessos seguintes,como ocorre nas transferências em Page Mode. A figura 36 mostra adiferença entre uma memória FPM e uma EDO, ambas operando em PageMode. Nas memórais FPM, a descida do CAS ativa o dado, enquanto a suasubida o desativa. Portanto, antes de fornecer a próxima coluna, é precisodar tempo para que o processador ou o chipset recebam os dados, para sóentão levantar o CAS, para finalmente ativá-lo em seguida para a próximaleitura. Nas memórias EDO, a subida do CAS não desativa o dado. Destaforma pode ser dado início ao fornecimento da próxima coluna, ao mesmotempo em que o dado está presente no seu barramento. Somente quando oCAS é novamente ativado é que o dado é desativado. De certa forma, aEDO DRAM faz dois trabalhos em paralelo. Mantém os dados nas suassaídas enquanto recebe o número da próxima coluna para acesso. Pelo fatode estender o tempo durante o qual os dados ficam ativos, essas memóriasrecebem o nome de Extended Data Out (EDO).

O ganho de velocidade não é excepcional, mas muito bem vindo. Se umaFPM DRAM opera com a temporização 7-3-3-3, a EDO DRAM com célulasidênticas opera com 7-2-2-2. Melhor ainda, como o último dado lido em umciclo fica disponível por mais tempo, o próximo ciclo também pode começarmais cedo, portanto o período de 7 ciclos para o primeiro acesso pode serreduzido para 6 ciclos, resultando na temporização 6-2-2-2. Neste caso é umganho de desempenho de 33% em relação à FPM DRAM. Nas placas deCPU este ajuste de temporização é feito através do CMOS Setup.

11-36 Hardware Total

Memórias EDO DRAM foram muito utilizadas entre 1995 e 1997, em placasde CPU Pentium com barramento externo de 50, 60 e 66 MHz. Algunsmodelos mais velozes podiam operar com barramentos de 75 e 83 MHz emplacas para processadores Cyrix 6x86, mas muitas vezes o funcionamento erainstável. Somente com a chegada da nova geração de memórias (SDRAM)tornou-se confiável o funcionamento com clock superiores a 66 MHz.

Módulos de memória EDO DRAM em geral apresentavam oencapsulamento SIMM de 72 vias. Entretanto, SIMM/72 não é sinônimo deEDO DRAM, já que podemos encontrar também módulos SIMM/72 commemórais FPM, e alguns módulos DIMM/168 com memórais EDO DRAM,apesar de raros.

As placas de CPU que suportavam memórias EDO DRAM em geralsuportavam também memórias FPM, o que possibilitou uma transiçãotranqüila entre as duas tecnologias. Também era possível usar nessas placas,ambos os tipos de memória ao mesmo tempo, desde que em bancosdiferentes.

Refresh

Como vimos, as células de DRAM, sejam elas do tipo normal, FPM, EDO,SDRAM, DDR, RDRAM ou que usem qualquer outra tecnologia,necessitam de refresh, ou seja, precisam ser lidas periodicamente, emintervalos de alguns milisegundos, para que não percam seus dados. Lertodas as células de um chip de DRAM seria uma operação bastantedemorada, mas felizmente essas leituras não precisam ser feitas célula porcélula, e sim, linha por linha. É fácil entender porque quando analisamos omecanismo de acesso às células da matriz.

Figura 11.37

Acesso a uma célula de memória.

Capítulo 11 - Memórias 11-37

Na figura 37 vemos o acesso à célula localizada na linha 4, coluna 6. Umaleitura nesta célula servirá para fazer o seu refresh, mas para tornar aoperação de refresh mais eficiente, os circuitos que controlam a matriz fazema leitura simultânea de todas as células da linha selecionada. Todas são lidasao mesmo tempo, ou seja, todas as células da linha passam por um refresh,mas os circuitos que controlam as colunas enviarão para o barramento dedados, apenas o valor da célula desejada.

Fazer o refresh em toda a matriz de células consiste em acessarseqüencialmente cada uma das suas linhas. Por isso nos ciclos de refresh nãoé necessário especificar a coluna, apenas a linha. O ciclo de refresh tambémé chamado de RAS Only.

Figura 11.38

Ciclo de refresh pelo método RAS Only.

Chips de memória DRAM mais modernos oferecem outros métodos derefresh, mas o tradicional RAS Only sempre é suportado. Outro métodooferecido nas memórias modernas é o CBR (CAS-Before-RAS). Consiste emaplicar simplesmente um sinal de CAS, seguido por um sinal RAS, ou seja,no ordem inversa da utilizada nas operações normais. Esta condição farácom que a memória utilize o endereço de linha presente em um contatorinterno (Refresh Counter). O cliclo de refresh pelo método CBR, além de sermais curto, não necesita que seja fornecido um endereço para a memória, jáque ela irá gerar este endereço de linha internamente. Note que nem todosos chips de DRAM oferecem este recurso.

Outro recurso ainda melhor oferecido em modelos mais novos de FPMDRAM e EDO DRAM, e presente em todas as memórias mais novas(SDRAM, DDR e RDRAM) é o Self Refresh. Essas memórias possuem umcontador interno para endereçar seqüencialmente todas as suas linhas, bemcomo circuitos que realizam o refresh dessas linhas. Desta forma ocontrolador de memória DRAM (faz parte do chipset) não precisa enviar àmemória, sinais de refresh.

11-38 Hardware Total

Nos manuais dos chips de DRAM encontramos sempre a indicação doperíodo de refresh (tREF, refresh period). Seu valor é dado em milésimos desegundo. É o tempo máximo que as células podem suportar de formasegura, sem perder os dados. A cada período de refresh, todas as linhas damemória precisam ser lidas para que dados não sejam perdidos.

Memórias DRAM antigas apresentavam períodos de refresh de 2 ou 4 ms.As primeiras versões do IBM PC, produzidas no início dos anos 80, usavammemórias DRAM modelo 4116. Essas memórias tinham a organização de16k x 1, portanto 8 delas formavam um banco de 16 kB, e 4 bancosformavam 64 kB. Elas tinham um período de refresh de 2 ms, ou seja, a cada2 milésimos de segundo, todas as suas linhas tinham que ser lidas. A matrizde 16k células tem 128 linhas e 128 colunas (128 x 128 = 16.384). Portanto acada 2 milésimos de segundo tinham que ser feitas 128 operações de refresh.O intervalo entre duas operações de refresh consecutivas deveria serportanto de:

2 ms 128 = 15,625 s

Como o IBM PC não tinha um controlador de refresh específico, erautilizado o canal 0 do controlador de DMA (8237A DMA Controller) pararealizar leituras repetitivas, fazendo assim o refresh. Pulsos de clock a cada15,625 s eram gerados pelo chip 8253 (programmable interval timer), quetambém era responsável pela geração dos sons que iam para o PC Speaker.

O IBM PC XT já utilizava chips de DRAM mais modernos, como o 4164(64kx1). Esses chips tinham matrizes de 256x256, duas vezes maiores, masseu período de refresh também era maior, com 4 ms. Desta forma os pulsosde refresh a cada 15,625 s eram suficientes para o correto funcionamentodas memórias.

Nas placas de CPU atuais, o refresh não é mais feito por DMA, apesar dosseus chipsets conterem circuitos compatíveis com o controlador 8237A,porém é utilizado para outras funções. Sendo assim, o canal 0 de DMA estálivre para outras aplicações nos PCs modernos.

Memórias FPM antigas necessitavam de refresh externo. Modelos mais novosde FPM DRAM e EDO DRAM eram oferecidos em versões com e sem selfrefresh. As memórias mais novas operam exclusivamente com self refresh.

Capítulo 11 - Memórias 11-39

Um outro tipo de memória que também faz refresh interno é a chamadapseudo static RAM. Essas memórias, além de fazerem o refresh, possuemtambém circuitos internos que desmembram o endereço em linha e coluna,e geram os sinais RAS e CAS. Externamente esses chips possuem sinais dedados, endereços, chip enable (CE), write enable (WE) e output enable(OE). Para todos os efeitos, comportam-se como RAMs estáticas. Note que asatuais memórias DRAM fazem refresh interno mas seus sinais de controlesão típicos de memórias dinâmicas, dados, endereços divididos em linha ecoluna, RAS, CAS, write enable e output enable.

Porque a DRAM é mais lenta que a SRAM

É um erro clássico afirmar que o refresh é o culpado pela lentidão daDRAM. É uma grande injustiça, pois o tempo perdido com o refresh nãochega a comprometer o desempenho do computador. No IBM PC e no PCXT, as leituras da memória duravam cerca de 0,8 s, e ocorriam a cada15,625 s. Essas leituras ocupavam portanto apenas 5% do tempo total damemória, uma degradação bem pequena. Em um Pentium-200, combarramento externo de 66 MHz, uma leitura de refresh demora cerca de 0,1s, o que ocupa menos de 1% do tempo total, uma queda de desempenhoimperceptível. Também menor que 1% é a porção total do tempo que umaDRAM moderna ocupa com o refresh. É portanto um erro técnico, etambém uma injustiça, afirmar que a DRAM é lenta porque necessita derefresh.

A lentidão da DRAM é resultado de sua natureza capacitiva. Nas operaçõesde escrita, os capacitores precisam ser carregados ou descarregados paraarmazenar os bits. As leituras, como já apresentamos, provocam alteração nacarga do capacitor selecionado, que precisa ser posteriormente carregado. Ascargas e descargas não são instantâneas, mas têm uma duração que dependedo valor do capacitor e da resistência elétrica percorrida pela corrente. AsRAMs estáticas podem operar de forma muito mais rápida porque nãoprecisam carregar e descarregar capacitores. Basta ligar os transistores e osdados são recebidos ou armazenados de forma muito mais rápida que nasDRAMs.

Comparando SRAM e DRAM

Já citamos algumas diferenças fundamentais entre a SRAM e a DRAM.Vamos resumir essas características na tabela abaixo. Como mostra a tabela,a DRAM leva vantagem em todos os pontos, exceto na velocidade. Estadesvantagem é compensada com o uso de memória cache.

11-40 Hardware Total

SRAM DRAM* Rápida LentaBaixa densidade * Alta densidadeAlto custo * Baixo custoAlto consumo * Baixo consumo

A lentidão da DRAM, como já explicamos, é resultado da sua naturezacapacitiva. A alta densidade da DRAM é devida ao fato das suas célulasserem mais simples. Note que apesar dos diagramas mostrarem a matriz decélulas em pequeno tamanho em comparação com outros módulos, estamatriz ocupa a maior parte da área do chip. Uma célula de DRAM temapenas um transistor e um pequeno capacitor. Uma célula de SRAM tem 6transitores, ou então 4 transistores e 2 resistores. Portanto as células deDRAM são de 3 a 4 vezes menores que as células de SRAM, ou seja, aDRAM é mais densa, permite a construção de maior número de células porunidade de área. A mesma tecnologia que permite produzir chips de SRAMcom 1 MB pode permitir produzir chips de DRAM com 4 MB.

Também como conseqüência das células da DRAM serem mais simples, seucusto é menor. Lembre-se que os chips são produzidos em pastilhascirculares de silício chamadas waffers). Quanto mais chips puderem serproduzidos em cada waffer, menor será o custo de cada chip. Além disso oprocesso de produção da DRAM é mais simples, pois utiliza menos camadasque a SRAM.

Finalmente, o consumo de cada célula de DRAM é bem menor que dascélulas de SRAM. A maior parte da energia elétrica de um chip é consumidaquando seus transitores mudam de estado, entre condução e não condução.Nas células de DRAM temos apenas um transitor trabalhando, contra 6 nacélula de SRAM. Além disso, mesmo quando uma célula está em repouso(sem ser acessada), dois dos 6 transistores da SRAM estão operando mesmoque consumindo baixa corrente. Na DRAM, as células em repouso ficamcom seus transitores cortados, sem consumir energia. Apanas paraexemplificar a diferença de consumo entre a SRAM e a DRAM, considereos chips MT58L64L32P (SRAM, 256 kB) e MT48LC16M8 (DRAM, 4 MB),ambos produzidos pela Micron Tecnhology utilizando tecnologias defabricação semelhantes, ambos operando a 100 MHz. Compare o consumodos dois chips:

Chip Capacidade Tensão Corrente Consumo Consumo por MBSRAMMT58L64L32P

256 kB 3,3 V 225 mA 0,75 W 3 W/MB

Capítulo 11 - Memórias 11-41

DRAM MT48L-C16M8

4 MB 3,3 V 140 mA 0,5 W 0,125 W/MB

A mesma tecnologia que resultou em uma SRAM que consome 3 watts porcada MB de memória, permite produzir memórias DRAM com consumo de0,125 watts por MB, ou seja, um consumo 24 vezes menor!

Reconhecendo a diferença entre FPM DRAM e EDO DRAM

Nem sempre é fácil reconhecer à primeira vista, a difernça entre memóriasFPM e EDO. Se o módulo for do tipo SIMM/30 ou SIPP/30, é obviamentedo tipo FPM, pois quando as memórias EDO chegaram ao mercado, osmódulos de 30 vias já haviam caído em desuso. A confusão ocorrebasicamente com módulos SIMM/72 produzidos entre 1994 e 1997, comunsem placas de CPU 386, 486 e nas primeiras placas de CPU Pentium. Placasde CPU 386 não funcionavam com memórias EDO, e placas de CPU 486também normalmente não, mas existem alguns modelos que suportam tantoFPM quanto EDO. Já as primeiras placas de CPU Pentium com soquetesSIMM/72 suportavam tanto memórias FPM quanto EDO. O BIOS dessasplacas era capaz de detectar o tipo de memória instalado em cada banco econfigura o chipset para acessos de acordo com o tipo detectado.

Figura 11.39

Alguns módulos apresentavam umaetiqueta “EDO”.

Alguns módulos de EDO DRAM apresentam uma etiqueta indicadora“EDO”, como na figura 39. Este é um indício para diferenciar memóriasEDO das memórias FPM, mas não nos deixa livres de falsificações, já quequalquer revendedor inescrupuloso pode produzir etiquetas falsas.Felizmente esta falsificação não é comum, já que as memórias EDO e FPMtêm preços similares.

11-42 Hardware Total

Em alguns casos é possível diferenciar entre FPM e EDO de acordo com anumeração dos chips. Muitos fabricantes usarm para os chips FPM DRAM,números terminandos com 0, enquanto os chips EDO têm seus númerosterminados com 5. A tabela abaixo mostra os principais fabricantes e ossufixos utilizados para cada tipo de DRAM:

Fabricante Inscrições nosChips

Sigla Exemplos Diferença entre FPM eEDO

OKI MSMMD

MSM51V17400BMSM51V17405D

FPM termina com 0EDO termina com 5 ou 8

Samsung KM KM48V8100CKM48V8104B

FPM termina com 0 ou 3EDO termina com 4 ou 5

TexasInstruments

TMS TMS417400ATMS416409A

FPM termina com 0EDO termina com 9

Fujitsu MB MB8118160AMB8118165A

FPM termina com 0EDO termina com 5

Mitsubishi M5M M5M417800DM5M4V17405C

FPM termina com 0EDO termina com 5

LGElectronics

GM GM71V65160CGM71V65163C

FPM termina com 0EDO termina com 3

Hyundai HY HY51V17800BHY51V17804B

FPM termina com 0EDO termina com 4

Siemens HYB HYB3166160AJHYB3164165AJ

FPM termina com 0EDO termina com 5

IBM IBM IBM01164DOT3EIBM0116165BJ3E

FPM termina com 0 EDO termina com 5

Micron MT MT4C1M16C3DJMT4LC1M16E5DJ

Normalmente o 4º dígitoantes do “-“ é “E” nasmemórias EDO.

Motorola MCM MCM218160BMCM218165B

FPM termina com 0EDO termina com 5

NEC NEC 4265160G54264165G5

FPM termina com 0EDO termina com 5

NPNX NN NN51V17800BJNN51V17805BJ

FPM termina com 0EDO termina com 5

Panasonic MN MN41V18160ASJMN41V18165ASJ

FPM termina com 0EDO termina com 5

Toshiba TC TC5118180BJTC5165165AJ

FPM termina com 0EDO termina com 5

Capítulo 11 - Memórias 11-43

Hitachi HM HM5165160AHM5164165A

FPM termina com 0EDO termina com 5

Note que os números citados, como 0 e 5 na maioria dos casos, são em geralseguidos de letras. Essas letras são códigos dos fabricantes, e podem indicaro encapsulamento, voltagem, faixa de temperatura e outras características.

Velocidade de memórias FPM e EDO

As memórias FPM e EDO, muito usadas nos PCs produzidos entre 1994 e1997, apresentam em geral o encapsulamento SIMM/72, e são utilizadas aospares. O tempo de acesso dessas memórias é medido em ns (nano-segundos). Em geral os tempos de acesso são de 50, 60, 70 e 80 ns, sendoque as de 60 e 70 ns são as mais comuns. Os fabricantes utilizam ao lado donúmero de cada chip, um indicador de tempo de acesso. Por exemplo, 60 nspode ser indicado como –60, 06, -06 ou similar. A figura 39 mostra chips deum módulo SIMM/72, com tempo de acesso de 60 ns.

As marcações usadas pelos vários fabricantes, para memórias FPM e EDO,são indicadas na tabela abaixo.

Tempo de acesso Marcações80 ns -80, -8, -08, -X870 ns -70, -7, -07, -X760 ns -60, -6, -06, -X650 ns -50, -5, -05, -X5

Por exemplo, os chips MT4C4007JDJ-6, mostrados na figura 39, são de 60 ns.Note que as marcações que indicamos dizem respeito a memórias FPM eEDO, encontradas em módulos SIMM/72 (e também em SIMM/30).Memórias SDRAM possuem marcações parecidas, mas os significados sãooutros. Por exemplo, uma SDRAM com marcação –8 não é de 80 ns, e sim,de 8 ns.

Se um módulo de memória é SIMM/30, então certamente é FPM. Se é ummódulo SIMM/72, então certamente é FPM ou EDO. Se o módulo é do tipoDIMM/168, então provavelmente trata-se de uma SDRAM, mas existemalguns raros casos de memórias FPM e EDO que usam o encapsulamentoDIMM/168.

EDO com encapsulamento DIMM/168

São bastante raras, mas existem algumas memórias EDO DRAM comencapsulamento DIMM/168, apesar deste encapsulamento ser mais usado

11-44 Hardware Total

pela SDRAM. É fácil esclarecer a dúvida, basta procurar pelo chip deEEPROM SPD (apresentado mais adiante neste capítulo). Módulos deSDRAM possuem este chip, enquanto os raros módulos EDO DRAM comencapsulamento DIMM/168 não o possuem.

DRAMs síncronasCom placas de CPU operando com barramentos mais velozes que 66 MHz,tornou-se necessário adotar novas tecnologias para acelerar a velocidade dasDRAMs, mesmo com as lentas células disponíveis. O chamado Page Mode,usado por memórias FPM e EDO DRAM já aproveitavam o fato de posiçõesconsecutivas de memória poderem ser acessadas de forma mais rápida, jáque todas compartilham a mesma linha na matriz de células. Sem anecessidade de selecionar novamente a linha, bastava selecionar as colunas,o que cortava o tempo de acesso praticamente pela metade para célulasconsecutivas. Memórias de 60 ns podiam então enviar dados em intervalosde cerca de 30 ns em page mode. Ainda assim este tempo é muito longo.Barramentos de 100 MHz exigem novos dados a cada 10 ns, e barramentosde 133 MHz a cada 7,5 ns. O uso do page mode não é suficiente paraentregar dados nesta velocidade. Foi então que surgiram as DRAMssíncronas (Synchronous DRAM, ou SDRAM), ideais para barramentos de 66a 133 MHz, e alguns modelos chegando a 166 MHz. Para barramentos maisvelozes, como 200, 266 e até 400 MHz, foram criadas novas versões aindamais velozes, como a DDR SDRAM (Double Data Rate SDRAM) e aRDRAM (Rambus DRAM).

SDRAM

Esta é a DRAM síncrona (Synchronous DRAM), muito utilizada nas placasde CPU produzidas entre 1997 e 2001. A principal diferença em relação àsDRAMs dos tipos EDO e FPM é que seu funcionamento é sincronizado como do chipset (e normalmente também com o processador), através de umclock. Por exemplo, em um processador com clock externo de 133 MHz, ochipset também opera a 133 MHz, assim como a SDRAM. Existemexceções, como processadores Athlon com clock externo de 200 MHz mascom memórias operando com apenas 100 ou 133 MHz. De qualquer forma,sempre existirá uma sincronização entre o chipset e a SDRAM.

A SDRAM é mais veloz que a EDO DRAM, é suportada por todas as placasde CPU produzidas a partir de meados de 1997, e seus módulos usam oencapsulamento DIMM/168, já mostrado no início deste capítulo.

Capítulo 11 - Memórias 11-45

Internamente não existe diferença entre as células de memória DRAMcomum, da FPM DRAM, da EDO DRAM e da SDRAM. A diferença estána forma como os dados dessas células são acessados. Uma SDRAM realizasuas transferências usando temporizações como x-1-1-1. O primeiro acesso éo mais demorado, mas os acessos seguintes ocorrem em apenas um ciclo.Essas memórias usam um velho truque para permitir acessos em um únicociclo. Este truque é utilizado pelas placas de vídeo gráfico, desde os anos 80.Dentro de um chip de memória SDRAM, existem 4 bancos de memóriaindependentes. Quando são acessadas, as células de mesmos endereços emcada um dos 4 bancos internos do chip são acessadas. Terminado o primeiroacesso (digamos que este primeiro acesso demore 5 ciclos, portanto amemória estaria operando com a temporização 5-1-1-1), o dado do primeirobanco poderá ser transmitido ao chipset e ao processador, e os três dadosdos outros três bancos poderão ser transmitidos imediatamente depois, semter que esperar pelo seu tempo de acesso tradicional. A demora está emchegar aos dados desejados. Uma vez acessados, podem ser rapidamentetransmitidos. Portanto, 4 circuitos lentos operando em conjunto, apresentamo mesmo resultado de um circuito rápido.

*** 100%***Figura11.40

Diagrama de umchip SDRAM.

A figura 40 mostra o diagrama interno de uma SDRAM. Como vemos,existem 4 matrizes de células, e cada uma delas com seus próprios circuitospara selecionamento de linha e coluna e sense amplifiers. As 4 matrizes sãoacessadas ao mesmo tempo, portanto uma vez que tenha sido feito oprimeiro (e mais demorado) acesso, os dados seguintes são transferidos maisrapidamente, pois já foram acessados da segunda, terceira e quarta matriz.Bastará apenas transferir os dados seqüencialmente, operação que pode serfeita em alta velocidade.

11-46 Hardware Total

Se a idéia parece complicada, façamos uma comparação bem simples. Vá auma loja de suprimentos de informática e peça um cartucho de tinta pretapara a sua impressora. Quando o vendedor trouxer o cartucho, peça umcom tinta amarela. Quando trouxer o segundo cartucho, peça um de tintacyan, por último um de tinta magenta. Digamos que o vendedor tenhademorado 20 segundos para buscar cada cartucho. Como os cartuchos detodas as cores estão todos na mesma prateleira, seria mais rápido pedir osquatro ao mesmo tempo. O vendedor demoraria os mesmos 20 segundospara chegar ao primeiro cartucho, mas imediatamente poderia pegar osoutros três (já “acessados”), economizando bastante tempo.

Observe no diagrama da figura 40 que existe um bloco chamado RefreshCounter. Este módulo está presente em todas as SDRAMs, e com ele o chipé capaz de fazer self refresh, ou seja, o controlador de memória não precisamais enviar comandos de refresh para os chips.

Como vemos, a SDRAM não é um tipo de memória que usa uma novatecnologia de fabricação extremamente mais veloz. Apenas usa uma novaforma de organizar as células de memória fazendo acessos simultâneos, paraque a transferência dos dados seja mais rápida. Truques semelhantes sãoutilizados por memórias mais avançadas, como a DDR SDRAM e aRDRAM, como veremos mais adiante.

Assim como as DRAMs convencionais, FPM e EDO, a SDRAM tambémutiliza sinais de controle RAS, CAS, WE (Write Enable) e CS (Chip Select),porém seu uso é diferente. As DRAMs anteriores à SDRAM são classificadascomo assíncronas. Seus sinais de controle são ativados da forma assíncrona,ou seja, cada um tem um instante certo para ser ativado, mas esses instantestêm liberdade para variar de acordo com o projeto. Já na SDRAM, essessinais de controle são sincronizados a partir de um clock. No início de cadaciclo de acesso os sinais de controle já devem estar definidos de acordo como ciclo que vai ser realizado. Por exemplo, em comandos de leitura,devemos ter no início do ciclo, CS=0, WE=1, RAS=0 e CAS=0. Noscomandos de escrita devemos ter CS=0, WE=0, RAS=0 e CAS=0. De acordocom a combinação formada pelos sinais CS, RAS, CAS, WE e DQM, temosdiversos comandos possíveis. A tabela da figura 41 mostra os comandos deum típico chip SDRAM. Na tabela, “H” singlifica nível alto (bit 1), “L”significa nível baixo (bit 0) e “X” significa “don’t care”, ou seja, tanto faz 0 ou1. Note que as transferências da SDRAM são feitas por padrão no modoburst. Para finalizar a transferência é preciso enviar ao chip um comandoburst terminate (CS=1, RAS=1, CAS=1 e WE=0).

Capítulo 11 - Memórias 11-47

Figura 11.41

Comandos de uma SDRAM.

Os comandos da SDRAM são ativados no início de cada ciclo, sempre noinstante da subida do sinal de clock (CLK). A figura 42 mostra atemporização do comando de leitura, que de acordo com a tabela da figura41, é obtido com CS=0, RAS=1, CAS=0 e WE=1.

*** 35% ***Figura 11.42

Comando de leitura da SDRAM.

A SRAM usa uma forma diferente para endereçar linhas e colunas da suamatriz que resulta em mais um significativo aumento de desempenho,utilizando a natureza seqüencial dos acesso à memória. Um chip de memóriaRAM é projetado para permitir acessos seguidos em posições aleatórias, masna prática, a maioria dos acessos são seqüenciais. Isto significa que quando éacessada uma posição de memória, é muito grande a probabilidade de quelogo a seguir seja acessada a posição seguinte, ou uma outra posiçãopróxima. Possições próximas correspondem a células localizadas na mesmalinha. Se pudéssemos anotar os valores de linha e coluna acessados em umamemória típica, veríamos que o número da coluna varia continuamente, maso número da linha é muito repetido. É portanto uma perda de tempo enviarvárias vezes o endereço da linha (acompanhado do sinal RAS).

A SDRAM aproveita esta natureza seqüencial da seguinte forma: utiliza umcomando chamado ACTIVE (CS=0, RAS=0, CAS=1 e WE=1) apenas paraespecificar o número da linha desejada na matriz de células. A seguir podemser usados comandos de leitura e escrita na linha já selecionada, bastandoespecificar apenas o número da coluna. Portanto, enquanto nas DRAMsconvencionais, FPM e EDO precisamos especificar linha-coluna-linha-coluna-

11-48 Hardware Total

linha-coluna-linha-coluna, na SRAM especificamos linha-coluna-coluna-coluna. Apenas quando é necessário acessar uma outra linha é usado umnovo comando ACTIVE. Isto não é uma novidade tecnológica, e sim umaperfeiçoamento de engenharia. Lembre-se que as memórias FPM e EDOtambém tinham um recurso semelhante, que é o page mode, no qual éindicada uma linha e os ciclos seguintes necessitam apenas da coluna.

Figura 11.43

Comando ACTIVE.

A figura 43 mostra o comando ACTIVE, usado para o selecionamento delinha. No instante em que sobre o clock, o barramento de endereços damemória deve ter recebido o endereço da linha desejada. Depois de umtempo tRCD especificado pelo fabricante (varia de acordo com o chip dememória), pode ser utilizado um comando de leitura e escrita. O tempotRCD é dado em nanossegundos, mas o tempo de espera deve ser definidoem número de clocks. Por exemplo, se em uma SDRAM operando a 133MHz (período de 7,5 ns) tivermos tRCD=20 ns, serão necessários 3 períodosde clock (3 x 7,5 ns = 22,5 ns) para que tRCD seja transcorrido. Nos ciclosde espera o comando fornecido ao chip deve ser o NOP (No OPeration),com CS=0, RAS=1, CAS=1 e WE=1.

Em uma placa de CPU, cabe ao processador indicar os endereços dememória que deseja acessar. Cabe ao chipset (no qual está o controlador dememória) decidir o instante correto de enviar um comando ACTIVEquando é acessada uma linha diferente da atual.

Como vimos na figura 43, terminado o número de ciclos suficiente paratranscorrer tRCD, podemos utilizar comandos de leitura e escrita. A figura 44mostra a temporização de um comando de leitura.

Capítulo 11 - Memórias 11-49

Figura 11.44

Comando de leitura com latência do CASigual a 2.

No instante em que sobe o clock (T0) deve ser indicado o endereço dacoluna e usado o comando de leitura (CS=0, RAS=1, CAS=0 e WE=1). Apartir daí transcorrerá um certo número de ciclos até que os dados sejamfornecidos no barramento de dados (DQ). O número de ciclos transcorrido éum parâmetro muito importante, chamado latência do CAS (CL). Em geralas memórias trabalham com CL=2 ou CL=3. Na figura 44 temos CL=2. Osfabricantes de memórias especificam os valores de CL que podem ser usadoscom seus chips, em função da freqüência utilizada. A tabela abaixo mostraos valores de CL que podem ser usados com cada clock, no chipMT48L32M4A2, produzido nas versões de 7, 7.5 e 8 ns. É interessanteoperar com CL=2, já que resulta em desempenho melhor que o obtido comCL=3. Mas para operar com CL=2 a memória tem que ser suficiente rápida(por exemplo, a versão –7 operando com 133 MHz, ou as duas outrasversões operando a 100 MHz).

Velocidade CL=2 CL=3-7 Até 133 MHz Até 143 MHz-75 Até 100 MHz Até 133 MHz-8 Até 100 MHz Até 125 MHz

O valor de CL pode ser ajustado pelo CMOS Setup, de forma manual ouentão de forma automática. Para usar o ajuste automático basta programar oitem SDRAM timing com a opção by SPD. O SPD (Serial Presence Detect) éuma pequena ROM de configuração existente nos módulos de SDRAM,através da qual o BIOS pode identificar automaticamente as característicasda memória.

11-50 Hardware Total

Figura 11.45

Leitura da SDRAM em modo burst.

Na maior parte do tempo, a SDRAM opera em modo burst, como mostra afigura 45. Estando o endereço da linha previamente selecionado através docomando ACTIVE e transcorrido tRCD, pode ser usado o comando deleitura, com o fornecimento do endereço da coluna desejada. Transcorrido operíodo de latência do CAS (no exemplo da figura 45, CL=2), começam aser enviados seqüencialmente os dados a partir da coluna especificada. Amenos que seja usado um comando BURST TERMINATE, os dados dascélulas seguintes serão automaticamente fornecidos. Ao contrário da EDODRAM e da FPM DRAM quando operam em page mode, não é necessáriofornecer os endereços das colunas. O barramento de endereços é ignorado,e comandos NOP devem ser fornecidos à memória a cada ciclo. Note quedurante uma transferência em modo burst, é permitido especificar oendereço de uma nova coluna, bastando usar um novo comando READ,como também mostra a figura 41. Graças a este recurso, a SDRAM podemoperar em modo burst com células aleatórias dentro de uma mesma linha, enão necessariamente consecutivas. Para isso basta usar vários comandosREAD consecutivos, cada um com o seu próprio endereço.

Como a SDRAM é tão rápida?

Quando as SDRAMs surgiram, foi um espanto geral. Que avançotecnológico permitiu de uma hora para outra, passar de memórias EDO com60 ns de tempo de acesso, para memórais SDRAM com 10 ns de período declock? Não existe avanço tecnológico algum, e sim uma reengenharia naforma como as memórais são construídas, utilizando o mesmo tipo de matrizde células. Para acessar uma SDRAM é preciso usar antes o comandoACTIVE, que em geral tem duração de 2 ou 3 ciclos. Só a partir daí podemser usadas leituras e escritas. A leitura, a operação predominante, só forneceos dados após transcorrida a latência do CAS, que também dura mais 2 ou 3ciclos. Portanto até a chegada do primeiro dado transcorrem entre 4 e 6ciclos. Memórias de clock elevado (-10 ns, por exemplo) ao operarem comclocks baixos podem usar latências menores. Em 66 MHz, 4 cicloscorrespondem a 60 ns. Em 100 MHz, 6 ciclos também são 60 ns. Portanto até

Capítulo 11 - Memórias 11-51

obter o dado desejado, transcorrem os mesmos 60 ns (em média) verificadosnas velhas memórias EDO e FPM. A vantagem da SDRAM aparece nastransferências seguintes, quando o chip entra no modo burst. Sem dúvida aSDRAM é uma excelente idéia, uma forma de conseguir velocidades bemmais altas usando matrizes de células relativamente lentas. Artifíciossemelhantes permitiram a criação da DDR SDRAM e da RDRAM, comvelocidades ainda maiores.

PC66, PC100, PC133

Inicialmente surgiram chips de SDRAM com clocks de 66, 100 e 125 MHz.Teoricamente eram destinados a operar com barramentos externos de 66,100 e 125 MHz, respectivamente. Como existiam várias diferenças entre astemporizações das várias versões de SDRAM de vários fabricantes, algumasincompatibilidades passaram a ocorrer. Visando resolver esses problemas, aIntel criou os padrões PC66 e PC100. São normas que definem todos osparâmetros de tempo que as memórias deveriam obedecer para operarseguramente a 66 e a 100 MHz, o que acabou com os problemas decompatibilidade. Os módulos de 100 MHz já existentes no mercado nãoatendiam plenamente às especificações do padrão PC100, por isso essesmódulos passaram a ser designados como PC66. Já os módulos de 125 MHzexistentes tinham temporizações compatíveis com o PC100, e passaram a serassim designados. Portanto um módulo com marcação de 10 ns ou 100 MHzé PC66. Pode ser usado com barramentos externos de 66 MHz, eprovavelmente também a 75 ou 83 MHz, mas não a 100 MHz. Os móduloscom marcação de 8 ns ou 125 MHz são classificados como PC100.

Os primeiros módulos para 133 MHz já foram criados obedecendo aopadrão PC133, portanto podem ser seguramente usados em barramentos de133 MHz. Esses módulos têm tempos de acesso de 7,5 ns ou menores.

O clock da SDRAM e a latência do CAS

Como vimos, as memórias SDRAM podem ser classificadas de acordo como seu clock, ou de acordo com o tempo de acesso. Ambas as classificaçõessão equivalentes. Por exemplo, um clock de 125 MHz resulta em um períodode 8 ns, portanto o fabricante pode utilizar qualquer um dos indicadorespara a velocidade: -125 ou –8, o que significa 125 MHz e 8 ns,respectivamente. A tabela abaixo mostra a correspondência entre os clocks eos tempos de acesso.

Clock Ciclo66 MHz 15 ns83 MHz 12 ns

11-52 Hardware Total

100 MHz 10 ns125 MHz 8 ns133 MHz 7,5 ns143 MHz 7 ns166 MHz 6 ns

Ocorre que, na prática, nem sempre os clocks máximos indicados pelosfabricantes das memórias podem ser utilizados. O problema não estárelacionado a enviar um dado a cada período de clock, e sim, ao longotempo necessário para enviar o primeiro dado. As primeiras memóriasSDRAM (não existiam na época os padrões PC66 e PC100) operavam comtemporizações como 7-1-1-1, 6-1-1-1 e 5-1-1-1, ou seja, precisavam de umtempo mais longo para encontrar o primeiro dado de um grupo, depoisenviavam os dados seguintes na sua velocidade máxima, com um dado acada ciclo de clock. As memórias atuais são ainda mais rápidas, e podemoperar nos modos 3-1-1-1 e 2-1-1-1. Esses modos são diferenciados por umparâmetro chamado CAS Latency, e está relacionado ao tempo transcorridoentre o início do ciclo e o sinal de CAS. São indicados como “CL=3” e“CL=2”. A maioria das memórias consegue operar com facilidade usandoCL=3, mas nem todas podem operar com CL=2. Um módulo de memóriacom marcação –75 (133 MHz) pode conseguir operar a 133 MHz usandoCL=3, mas pode não conseguir operar com CL=2, sendo necessário utilizá-locom clocks mais baixos. Tome por exemplo as informações apresentadaspela Mícron sobre seus chips com ciclos de 7 e 7,5 ns:

Marcação Ao usar o clock Precisa de Latência doCAS de...

Classificação

-75 66 MHz 2 PC66-75 100 MHz 2 PC100-75 133 MHz 3 PC133-7 133 MHz 2 PC133-7 143 MHz 3

O chip de marcação –75 opera com ciclos de 7,5 ns, ou 133 MHz. Estamemória pode ser instalada em placas que exijam o funcionamento externoa 66, 100 e 133 MHz, entretanto, para 66 e 100 MHz pode utilizar CL=2(resultando em temporizações 2-1-1-1). Estaria assim atendendo aos requisitosdos padrões PC66 e PC100. Para operar em placas com clock externo de 133MHz, precisaria utilizar CL=3, operando então com a temporização 3-1-1-1,ainda assim atendendo à especificação PC133. O ideal entretanto é utilizar atemporização 2-1-1-1, obtida com CL=2. Segundo este fabricante, isto épossível com os seus chips de marcação –7. Esses chips podem operar aindacom o clock máximo de 143 MHz, porém usando CL=3. Note que essas

Capítulo 11 - Memórias 11-53

regras não são gerais, sempre é preciso confirmar no manual do fabricante,qual é o CL que pode ser usado (2 ou 3) para cada clock. De um modogeral, para fazer um chip de SDRAM operar com a sua máxima freqüência épreciso usar CL=3.

Muitas placas de CPU possuem no CMOS Setup, especificamente na seçãoAdvanced Chipset Setup, um item para indicar a latência do CAS,oferecendo as opções CL=2 e CL=3. Isto permite ao usuário fazer umpequeno “envenenamento”, utilizando memórias mais rápidas que onecessário e programando CL=2. A configuração mais segura entretanto éutilizar o SPD (Serial Presence Detect). Esta identificação das memóriasSDRAM informa ao BIOS os seus parâmetros temporais, e assim pode serfeita automaticamente a programação do CL e outros parâmetros de modo aobter o melhor desempenho e com segurança.

De um modo geral, memórias SDRAM de 10 ns (100 MHz) podem operar a66 MHz com CL=2. Essas memórias recebem a classificação PC66.Memórias de 8 ns (125 MHz) normalmente podem operar 100 MHz (padrãoPC100) e CL=2, mas alguns chips requerem CL=3. Memórias de 7.5 ns (133MHz) em geral funcionam a 133 MHz (PC133) com CL=3. Para utilizar 133MHz com CL=2, em geral é preciso que as memórias sejam mais rápidas,como –7 ou –6 (143 MHz e 166 MHz, respectivamente). Use a tabela abaixocomo referência:

Memórias de.... Podem operar com... Usando CL166 MHz (6 ns) 133 MHz CL=2

100 MHz CL=266 MHz CL=2

143 MHz (7 ns) 133 MHz CL=2100 MHz CL=266 MHz CL=2

133 MHz (7,5 ns) 133 MHz CL=3100 MHz CL=266 MHz CL=2

125 MHz (8 ns) 100 MHz CL=266 MHz CL=2

100 MHz (10 ns) 100 MHz CL=366 MHz CL=2

Note que esta tabela tem a intenção de ajudar, mas dependendo do chip dememória utilizado, pode ser necessário usar CL=3 em situações nas quais atabela recomenda CL=2. A palavra final é a do fabricante das memórias. Em

11-54 Hardware Total

caso de dúvida, usar CL=3 sempre funciona quando o clock da memória éigual ou superior ao clock da placa de CPU.

*** 75%***Figura11.46

Acessos de leituracom CL=1, CL=2 eCL=3. paramemórias MicroMT48LC1M16A1

A figura 46 mostra as operações de leitura em uma SDRAM modeloMT48LC1M16A1, produzida pela Micron, usando CL=1, CL=2 e CL=3. Osdados não devem ser generalizados para qualquer chip de SDRAM, sãoespecíficos para o chip citado. Na prática, CL=1 não é utilizado, pois asmemórias SDRAM não podem operar com freqüências elevadas nestemodo. Com CL=1, o dado (DQ) é acessado depois de apenas 1 ciclo declock. Note na figura que com CL=1, o comando de leitura (READ) foi dadoa subida do pulso de clock T0, e o dado (DQ) ficou pronto um ciclo depois,ou seja, na subida de T1. Com CL=2, o dado está pronto depois de doisciclos de clock, e com CL=3, pronto com 3 ciclos de clock. Memóriasoperando com CL=2 e CL=3 operam com temporizações 2-1-1-1 e 3-1-1-1,respectivamente. A figura mostra ainda uma pequena tabela indicando afreqüência máxima que pode ser usada com CL=1, CL=2 e CL=3. A tabelamostra que usando CL=1, memórias –6 (166 MHz) podem operar nomáximo a 50 MHz, memórias –7 (143 MHz) podem operar no máximo a 40MHz, e memórias –8 (125 MHz) podem operar no máximo a 40 MHz,valores muito baixos. Já com CL=2 essas memórias operam de forma maisconfortável: 125 MHz, 100 MHz e 77 MHz, respectivamente. Apenas comCL=3 essas memórias conseguem operar com suas freqüências máximas.

DDR SDRAM

Apesar de envolver um grande esforço de engenharia na sua implementação,a idéia da DDR (Double Data Rate) SDRAM é bastante simples. Ao invésde uma única SDRAM, coloque duas iguais, lado a lado. Quando uma foracessada, a outra também será. Cada SDRAM poderá entregar um dado a

Capítulo 11 - Memórias 11-55

cada pulso de clock. Como temos duas memórias “em paralelo”, o conjuntopoderá entregar dois dados a cada pulso de clock. O resultado é uma taxade transferência duas vezes maior. Agora, ao invés de utilizar dois chipsSDRAM iguais, lado a lado, constrói-se um único chip com os circuitosequivalentes aos das duas SDRAMs, e adiciona-se a ele, os circuitosnecessários para fazer a transmissão dupla a cada pulso de clock. O chipresultante é uma DDR SDRAM.

*** 47% ***Figura 11.47

Operação da SDRAM e da DDR SDRAM.

A figura 46 mostra a diferença, do ponto de vista externo, entre a SDRAM ea DDR SDRAM. Os períodos de clock são representados por T0, T1, T2 eT3. A SDRAM fornece um dado a cada período de clock, e o instante dasubida deste clock (transição de “0” para “1”) indica que o dado está prontopara ser lido. Na DDR SDRAM, utilizando períodos iguais, cada transiçãode subida ou de descida indica a presença de um dado pronto. Portanto sãodois dados a cada clock.

As memórias DDR SDRAM recebem nomes de acordo com o clock quetrabalham, e também com a taxa de transferência. Por exemplo, uma DDRSDRAM que opera com 100 MHz realiza 200 milhões de transferências porsegundo, portanto é chamada de DDR200. Como se tratam de transferênciasde 64 bits (8 bytes), os 200 milhões de transferências resultam em 1,6 bilhõesde bytes por segundo. Aqui comete-se mais uma vez, uma imprecisão típicade fabricantes de memórias e de discos rígidos: confundir bilhão com giga.Como sabemos, 1 giga vale 1024 x 1024 x 1024, ou seja, 1.073,741.824.Entretanto, para não criar confusão, consideraremos nesta discussão sobretaxas de transferência de memórias, um “mega” como sendo igual a ummilhão, e 1 “giga” como sendo 1 bilhão. Portanto diríamos que a taxa detransferência de uma DDR200 é 1,6 GB/s. Devido a esta taxa, essasmemórias também são chamadas de PC1600.

A tabela que se segue mostra os diversos tipos de DDR, com seus clocks esuas taxas de transferência.

11-56 Hardware Total

Tipo Clock Taxa de transferênciaDDR200 ou PC1600 100 MHz 1,6 GB/sDDR266 ou PC2100 133 MHz 2,1 GB/sDDR300 ou PC2400 150 MHz 2,4 GB/sDDR333 ou PC2700 167 MHz 2,7 GB/sDDR400 ou PC3200 200 MHz 3,2 GB/sDDR800 ou PC6400 400 MHz 6,4 GB/s

OBS: Não confunda os termos PC66, PC100 e PC133, usados pela SDRAM, com os termosPC1600 e superiores, usados pela DDR SDRAM. Na DDR SDRAM, o número representa ataxa de transferência máxima, medida em MB/s, enquanto na SDRAM, o número indica afreqüência de operação. Uma SDRAM PC100, por exemplo, fornece 800 MB/s (já quetrabalha com 64 bits = 8 bytes em cada acesso), portanto tem a metade do desempenho deuma DDR SDRAM padrão PC1600.

A figura 48 mostra mais uma vez a diferença entre um módulo DIMM/168,usado pelas memórias SDRAM, e um módulo DIMM/184, usado pelasmemórias DDR SDRAM.

Figura 11.48

Módulos DIMM/168 (SDRAM) eDIMM/184 (DDR SDRAM).

A figura 49 mostra o diagrama interno de um chip de DDR SDRAM. Ébastante parecido com o de uma SDRAM, e a proncipal diferença fica porconta dos acessos às matrizes de células, que são feitas com um número debits simultâneos duas vezes maior que na SDRAM.

Capítulo 11 - Memórias 11-57

***100%***Figura11.49

Diagrama deum chip DDRSDRAM.

A outra grande diferença está nos estágios de entrada e saída. Observe noexemplo da figura 50 que sempre chegam 8 bits da matriz de células.Circuitos multiplexadores selecionam ora o primeiro grupo de 4 bits, ora osegundo grupo de 4 bits. Data forma é feita a interface com um barramentode dados de 4 bits. Em todos os chips de DDR SDRAM, o número de bitsque chegam das matrizes de células é duas vezes maior que o número de bitsdo seu barramento de dados.

Figura 11.50

Para o chip DDR SDRAM fornecer 4 bits, amatriz de células tem que fornecer 8 bits.

Chips de DDR SDRAM operam com dois sinais de clock (na figura 49 sãoCK e CK#). São clocks complementares, ou seja, quando um deles está emnível 1, o outro está em nível 0, e vice-versa. Os comandos da DDR SDRAMsão semelhantes aos da SDRAM, e são sempre fornecidos na subida doclock CK. Note que apenas a taxa de dados é dobrada. Os comandos sãoenviados aos chips com taxa normal, ou seja, a taxa dos comandos não édobrada. Isto pode ser visto claramente na figura 51, que mostra umcomando de leitura em modo burst.

11-58 Hardware Total

*** 75%***Figura11.51

Leitura de uma DDRSDRAM em modoburst.

Memórias DDR SDRAM podem utilizar latências de CAS (CL) iguais a 2 ou2,5. Significa que os dados estarão disponíveis 2 ciclos, ou então dois ciclos emeio após o envio do comando de leitura. Note que figura 51 que oscomandos são dados sempre na subida do clock CK. Terminado o períodode latência do CAS, os dados começam a ser enviados, tanto na subida deCK quanto na subida de CK#, o que resulta em taxa de dados dupla.Durante uma transferência em burst, a memória pode receber um novocomando de leitura, com a especificação de uma nova coluna. Um sinalDQS (data strobe) é usado para sincronizar os dados. Nas operações deleitura, o sinal DQS irá variar, e suas subidas e descidas indicarão osinstantes em que os bits lidos estão disponiveis. Este sinal é usado pelochipset para que possa receber os dados no momento correto.

RDRAM

A RDRAM utiliza um processo similar ao da SDRAM para aumentar a taxade transferência. Como vimos, cada chip SDRAM possui no seu interior,quatro bancos que são acessados simultaneamente, e depois transferidosrapidamente para o chipset e para o processador. Nas memórias RDRAM, éusado um número ainda maior de bancos para obter uma taxa detransferência ainda mais elevada. São 16 ou 32 bancos, dependendo doschips. As células de memória usadas nesses bancos, assim como ocorre nosdemais tipos de DRAM apresentados aqui, não são muito diferentes dascélulas usadas nas DRAMs convencionais, exceto pela sua voltagem e poruma pequena redução no tempo de acesso. Cada uma dessas células são tãolentas quanto as encontradas nas memórias FPM DRAM de 60 ns, porexemplo, usadas em meados dos anos 90. A grande diferença é que essasmemórias modernas utilizam muitas células trabalhando em paralelo,visando obter mais bits de uma só vez, e assim transferi-los mais rapidamentepara o processador.

Um típico chip de memória RDRAM opera com dados de 16 bits. Tambémsão comuns os chips de 18 bits. Os dois bits adicionais são usados como

Capítulo 11 - Memórias 11-59

paridade, e servem para implementar mecanismos de detecção e correção deerros, como mostraremos mais adiante neste capítulo. Para simplificar adiscussão, consideremos apenas os chips de 16 bits.

A maioria das DRAMs atuais operam com 300 ou 400 MHz. Algunsfabricantes oferecem freqüências intermediárias, como 333 ou 350 MHz.Também para simplificar nossa explicação, consideremos os chips de 400MHz. Assim como a DDR SDRAM, a RDRAM também realiza duastransferências por cada ciclo de clock, portanto tudo se passa como se aoperação fosse em 800 MHz. Esses 800 milhões de transferências porsegundo, sendo cada uma de 16 bits (2 bytes), resultam na taxa detransferência de 1,6 GB/s – aqui estamos fazendo como os fabricantes,considerando por simplicidade, 1 GB como sendo igual a 1 bilhão de bytes.Note que esta taxa é bem maior que a exigida pela maioria dosprocessadores:

Processador bits clock BandaPentium III 64 100 MHz 800 MB/sPentium III B 64 133 MHz 1,07 GB/sAthlon 64 200 MHz 1,6 GB/sAthlon 64 266 MHz 2,13 GB/sPentium 4 64 400 MHz 3,2 GB/s

Um único canal de memória RDRAM oferece uma taxa de transferênciasuficiente para atender à maioria dos processadores, exceto os maisavançados. O Pentium 4, por exemplo, com seu barramento de 400 MHz e64 bits, exige 3,2 GB/s, o dobro da taxa de transferência da RDRAM.Portanto nas placas de CPU para Pentium 4, são utilizados dois canais deRDRAM com 1,6 GB/s cada um, totalizando os 3,2 GB/s necessários. UmAthlon com barramento externo de 200 MHz poderia ser plenamenteatendido por um canal RDRAM de 1,6 GB/s, mas o mesmo não ocorre comas novas versões, que usam o clock externo de 266 MHz. Seriam necessáriosdois canais de RDRAM, ou então o uso de uma RDRAM mais veloz, ouentão utilizar RDRAMs de 532 MHz, ao invés dos modelos de 400 MHz. Naverdade não é o que ocorre. A AMD é uma das responsáveis pelodesenvolvimento da DDR SDRAM, e essas são as memórias usadas nasplacas de CPU para os modelos mais avançados do Athlon.

11-60 Hardware Total

Figura 11.52

O Pentium 4 operando com RDRAMnecessita de dois canais.

Os processadores modernos operam com 64 bits simultâneos, enquanto aRDRAM fornece apenas 16. Cabe ao chipset, que faz a ligação entre oprocessador e a memória, obter 4 grupos consecutivos de 16 bits vindos daRDRAM, formando os 64 bits exigidos pelo processador. Nas placas de CPUpara Pentium 4, são dois canais de 16 bits, ambos a 800 MHz (lembre-se quesão na verdade 400 MHz, mas com duas transferências por cada clock).Juntos formam 32 bits por 800 MHz. O chipset faz a composição para 64 bitse 400 MHz, exatamente como exige o Pentium 4.

A incrível velocidade de 800 MHz não existe entre as células de memória daRDRAM. Esta velocidade existe apenas nos circuitos de entrada e saída.Para fornecer nas suas saídas, 16 bits a 800 MHz, os circuitos internos daRDRAM buscam 128 bits simultâneos (8 vezes mais), na taxa de 100 MHz.Esses 128 bits que chegam aos circuitos de saída a cada 10 ns (100 MHz) sãotransferidos em grupos de 16, tomando 1.25 ns para cada grupo (800 MHz).Portanto a RDRAM é rápida apenas do ponto de vista externo.Internamente é uma memória mais lenta, de apenas 100 MHz, mas quefornece um número de bits simultâneos muito grande. A própria operaçãointerna em 100 MHz (ciclos de 10 ns) também é uma dificuldade para ascélulas de memória, que necessitam de no mínimo 60 ns para encontrar osdados. Este aumento é por sua vez feito pelo acesso simultâneo a um grandenúmero de bits. Os bancos de células existentes no interior da DRAMoperam na verdade com clock de 12,5 MHz (ciclo de 80 ns), mas fornecem1024 bits (128 bytes) simultâneos. Note que 128 bytes x 12,5 MHz sãoexatamente 1,6 GB/s. Essas células de memória operam portanto em umafreqüência baixa, mas com um elevado número de bits simultâneos, queuma vez acessados, são transmitidos em altíssima velocidade, em grupos de16.

É muito difícil tecnologicamente, fazer as células de DRAM serem maisrápidas. Veja a evolução nos seus tempos de acesso ao longo das últimasdécadas:

Capítulo 11 - Memórias 11-61

Ano Tempo de acesso Bits do barramento Processador1980 250 ns 8 bits 5 MHz1985 150 ns 16 bits 12 MHz1990 100 ns 32 bits 25 MHz1995 60 ns 64 bits 100 MHz2000 50 ns 64 bits 1000 MHz

Neste período de 20 anos, as memórias tornaram-se 5 vezes mais rápidas,enquanto o clock dos processadores aumentou 200 vezes. Para compensaresta desigualdade, os processadores passaram a utilizar barramentos commais bits. Um barramento de 64 bits com memórias de 50 ns éaproximadamente 40 vezes mais rápido que um barramento de 8 bits e 250ns. Ainda assim este aumento de 40 vezes não aumentou tanto quanto oclock dos processadores. A situação é ainda pior quando consideramos queo aumento do desempenho dos processadores foi muito maior que o simplesaumento de clock. Uma forma de solucionar o problema seria aumentarmais ainda a largura dos barramentos, passando a 128 ou 256 bits, mas istotornaria os projetos de placas extremamente complexo devido ao grandenúmero de trilhas de circuito. A solução mais simples e que foi realmenteadotada, foi aumentar o número de bits do barramento interno dasmemórias. A RDRAM, por exemplo, busca 1024 bits simultâneos. Uma vezacessados, esses bits são transmitidos em alta velocidade, por um barramentoexterno que continua com 64 bits, porém com clock elevadíssimo.

Figura 11.53

Estrutura interna de uma RDRAM.

A figura 53 mostra a estrutura interna de um chip de RDRAM. A parte maisimportante, e que ocupa a maior parte dos circuitos, são os bancos deDRAM em seu interior. Dependendo do chip, podem ser 16 ou 32 bancos.

11-62 Hardware Total

Esses bancos fazem acessos simultâneos a grupos de 1024 bits a cada períodode 80 ns, enviando-os às saídas em grupos de 128 bits a cada 10 ns, que porsua vez são enviados para o barramento externo, em grupos de 16 bits acada 1,25 ns.

SPD – Serial Presence DetectEste é um recurso que possibilita ao BIOS identificar corretamente ascaracterísticas dos módulos de memória, e desta forma configurar o chipsetpara realizar o acesso da forma mais eficiente. Foi introduzido nos módulosde memória SDRAM e mantido nos módulos de DDR SDRAM e RDRAM.É implementado através de um minúsculo chip de memória EEPROMexistente nos módulos, onde estão armazenadas todas as suas características.Normalmente este chip tem 8 terminais e fica localizado na parte direita domódulo, como mostra a figura 54.

Figura 11.54

O chip SPD de um módulo de SDRAM.

Antes de existir o SPD, o BIOS precisava determinar através de contagem, aquantidade de memória instalada. Vários parâmetros relacionados com atemporização de acesso às memórias deviam ser obrigatoriamenteprogramados no BIOS. Como existem módulos com características bemdiferentes, os BIOS precisavam utilizar temporizações longas, compatíveiscom maior variedade de módulos, e desta forma o desempenho não eraotimizado. O usuário mais experiente tinha que ajustar manualmente astemporizações, visando obter maior desempenho.

Com as memórias atuais, suas características são corretamente detectadasatravés do SPD, e o BIOS pode programar o chipset para obter o máximodesempenho possível para as memórias instaladas. A seguir apresentamosalguns dos diversos parâmetros armazenados na EEPROM SPD:

Capítulo 11 - Memórias 11-63

Alguns parâmetros armazenadosCapacidade do móduloNúmero de bitsTempo de acessoTipo da memória: SDRAM, DDR SDRAM, RDRAMNúmero de bancosVoltagem

O conteúdo completo de uma EEPROM SPD pode ser lido com o programaHWINFO, obtido em www.hwinfo.com.

Figura 11.55

Obtendo o conteúdo da SPD EEPROMcom o programa HWINFO.

Escolhendo a DDR SDRAM corretaA DDR SDRAM é um produto bastante recente, começou a ser produzidaem alta escala no ano 2000. Sendo um produto novo, maiores são as chancesde ocorrerem incompatibilidades, já que nem sempre todos os fabricantesseguem os mesmos padrões. Vamos então esclarecer os principais pontos.

Módulos DDR Registered e Unbuffered

Um fato importante deve ser conhecido sobre as memórias DDR. Existemduas categorias:

1) Registered2) Unregistered ou Unbuffered.

Os fabricantes de memórias normalmente produzem ambos os tipos. Osegundo é mais barato e mais indicado para PCs comuns. O tipo registered émais caro, mas tem a vantagem de poder ser instalado em maioresquantidades, sendo ideal para servidores. Cada módulo registered consomemenos corrente nas suas entradas, portanto um mesmo chipset pode serligado a um número maior de módulos, o que resulta em maior quantidadede memória. O próprio chipset AMD 760, primeiro a operar com DDR,

11-64 Hardware Total

pode controlar o máximo de 2 GB de DDR tipo unbuffered, ou até 4 GB dotipo registered. Placas de CPU que suportam memórias DDR possuem emgeral um jumper para a indicação do tipo de DDR. É o caso da placa deCPU 7DXC, produzida pela Gigabyte (figura 56).

Figura 11.56

Jumper para indicar o tipo de DDR SDRAM(Registered / Unbuffered).

É fácil identificar a diferença entre memórias DDR nas versões Registered eUnbuffered. A diferença está mostrada na figura 57. Ambos utilizam os chipsde memória similares, mas o módulo Registered possui chips adicionaislocalizados entre o conector e os chips de memória. Esses chips são oschamados Registers (registradores).

Figura 11.57

Módulos de DDR SDRAM DIMM/184 nasversões Unbuffered e Registered.

OBS: A mesma regra é válida também para memórias SRAM. Os módulos SRAM registeredpossuem chips adicionais (registradores), como mostra a figura 57.

Voltagem da DDR SDRAM

Assim como as memórias SDRAM usadas na maioria dos PCs operam com3,3 volts, as memórias DDR SDRAM mais usadas operam com 2,5 volts, mas

Capítulo 11 - Memórias 11-65

existem ainda as versões de 1,8 volts, ainda pouco utilizadas. Existemdiferenças no soquete e nos módulos, que impedem o uso de módulos de 1,8volts em soquetes de 2,5 volts, e vice-versa. A diferença fica por conta doposicionamento do chanfro do soquete. A figura 58 mostra os chanfros paraos atuais módulos de 2,5 volts (chanfro à esquerda) e para as futurasmemórias de 1.8 volts (chanfro no centro). Existe ainda uma posiçãoreservada para uso futuro (chanfro à direita), que poderá ser usada com umeventual novo padrão de voltagem.

Figura 11.58

O chanfro indica a voltagem do módulode memória DDR.

Velocidade da DDR SDRAM

O selecionamento da DDR SDRAM começa pelo seu clock, de acordo como apresentado na tabela abaixo. Note que as denominações DDRxxx sãoadotadas principalmente pelos chips de memória, enquanto nomenclaturascomo PCXXXX (PC1600, PC2100, etc.) são usadas para designar módulo. Ocorreto portanto seria dizer, por exemplo, que “um módulo de DDR PC1600utiliza chips DDR200”.

Tipo Clock Taxa de transferênciaDDR200 / PC1600 100 MHz 1,6 GB/sDDR266 / PC2100 133 MHz 2,1 GB/sDDR300 / PC2400 150 MHz 2,4 GB/sDDR333 / PC2700 167 MHz 2,7 GB/sDDR400 / PC3200 200 MHz 3,2 GB/sDDR800 / PC6400 400 MHz 6,4 GB/s

Como já explicamos para a SDRAM, diferentes módulos podem operar comlatência do CAS com valores 2 ou 3 (CL=2 / CL=3). Duas memóriasSDRAM PC133 podem operar com 133 MHz, porém uma com CL=2 eoutra com CL=3. As memórias com menor ciclo têm maiores chances deoperar com CL=2, o que resulta em melhor desempenho. Por exemplo, umcerto módulo SDRAM com ciclo de 7 ns pode ser capaz de operar com 133MHz e CL=2, enquanto outro de 7,5 ns pode operar com os mesmos 133MHz, mas com CL=3.

Memórias DDR SDRAM também podem utilizar diferentes latências doCAS. As versões disponíveis no mercado devem operar com CL=2 ou

11-66 Hardware Total

CL=2,5. Daí surgem as versões DDR266A e DDR266B. Os chipsclassificados como DDR266A podem operar com CL=2, enquanto os do tipoDDR266B operam com CL=2,5. As placas de CPU que usam este tipo dememória podem ser configuradas de forma automática, na qual o CL éprogramado de acordo com as informações na EEPROM SPD (SerialPresence Detect), ou então manualmente. A figura 59 mostra esta opção noCMOS Setup de uma placa de CPU Gigabyte 7DX, equipada com DDRSDRAM.

Figura 11.59

Indicando manualmente a latência do CASde uma DDR SDRAM no CMOS Setup.

No comércio encontramos módulos DDR SDRAM apenas com asindicações PC1600 (DDR200) ou PC2100 (DDR266). Apenas com essasinformações não podemos saber se o chip é capaz de operar com CL=2(melhor) ou CL=2,5 (pior). Isto não chega a dificultar a instalação, poisusando no CMOS Setup a configuração automática via SPD, os parâmetroscorretos são automaticamente programados. Para checar o valor de CLpermitido antes de comprar um módulo DDR, teríamos que anotar o nomee o fabricante dos seus chips, obter pela Internet o manual desses chips dememória e finalmente ter acesso a informações como a da figura 60. Nesteexemplo, vemos que os chips MT46V16M8TG, produzidos pela Mícron, sãoproduzidos nas versões –75 e –10 (7,5 ns e 10 ns). Esses chips podem operarcom CL=2 em 133 MHz (DDR266A) e 100 MHz. Podem ainda operar comCL=2,5 em 150 MHz (DDR300) e 133 MHz (DDR266B).

Figura 11.60

Os fabricantes de DDR SDRAM indicam osvalores de CL que podem ser utilizadoscom seus chips.

Escolhendo a RDRAM correta

Os módulos de RDRAM são classificados de acordo com a velocidade,número de bits e tempo de acesso:

Capítulo 11 - Memórias 11-67

Velocidade PC800, PC700, PC600Numero de bits 16 ou 18Tempo de acesso 40 a 55 ns

Os módulos de 18 bits são usados em sistemas que operam com código decorreção e detecção de erros (ECC). Os módulos de 16 bits são um poucomais baratos e não utilizam este recurso. As velocidades estão relacionadascom a taxa de transferência:

PC600 1,2 GB/sPC700 1,4 GB/sPC800 1,6 GB/s

O tempo de acesso é outro fator importante. Assim como ocorre com asmemórias SDRAM e DDR SDRAM, as memórias RDRAM necessitam deum pequeno tempo (similar à latência do CAS) antes que comecem atranferir dados no modo síncrono. Conforme abordamos, as memóriasRDRAM utilizam no seu interior, células de DRAM comuns, lentas comotodas as memórias deste tipo. O único diferencial é que fazem acessosimultâneo a um elevado número de bits, que uma vez acessados, podem sertransferidos em alta velocidade. As memórias RDRAM são portantoclassificadas de acordo com o seu tempo de acesso, que é o temponecessário para que este grande número de bits sejam endereçados,acessados e estejam prontos para a transferência. Os fabricantes indicam emgeral nos módulos de RDRAM, a taxa de transferência e o tempo de acesso.A figura 61 mostra um módulo padrão PC800, com tempo de acesso de 40ns. Observe a indicação “800-40” na parte direita da etiqueta.

Figura 11.61

Módulo RIMM de 800 MHz e 40 ns.

Nos manuais dos módulos de memória RDRAM, os fabricantes indicam asopções de clock e tempo de acesso (ou latência). A figura 62 mostra umatabela extraída de um manual, indicando as versões produzidas. Observeque existem versões de 16 e de 18 bits, com clocks de 600, 711 e 800 MHz, ediversos tempos de acesso. Para as versões PC800, por exemplo, sãooferecidos tempos de acesso de 40, 45 e 50 ns. Obviamente as versões commenor tempo de acesso são mais caras.

11-68 Hardware Total

Figura 11.62

Opções de velocidade apresentadas por umfabricante de RDRAM: Clock e tempo de acesso.

Nas placas de CPU equipadas com RDRAM, o BIOS pode obter osparâmetros de velocidade e tempo de acesso a partir dos dados armazenadosna EEPROM SPD (Serial Presence Detect) da RDRAM, e programar ochipset para operar no modo correto. Em geral também é possívelprogramar manualmente esses parâmetros através do CMOS Setup.

Módulo RIMM de continuidade

O barramento das memórias RDRAM não pode ter soquetes vazios. Énecessário um casamento de impedância devido à sua elevada freqüência deoperação. Devemos completar os soquetes vazios com módulos decontinuidade, como mostra a figura 63.

Capítulo 11 - Memórias 11-69

Figura 11.63

Usando módulos de continuidade RIMM.

Detecção e correção de erros na memóriaTodos os chips de memória estão sujeitos a erros. A probabilidade daocorrência de erros é muito pequena, mas dependendo da aplicação, o erropode ser tolerado ou não. Se um computador usado exclusivamente parajogos apresentar um erro por ano, isto não causará problema algum. Se umcomputador usado no monitoramento de um reator nuclear, a taxa de umerro a cada 10 anos seria catastrófica. Existem mecanismos para detectarerros, e outros que permitem ainda corrigir o erro encontrado.

Paridade

A paridade é um recurso que serve para aumentar a confiabilidade dasmemórias DRAM (isto se aplica a qualquer tipo de DRAM: RDRAM, DDR,SDRAM, EDO e FPM). Nos anos 80, as DRAMs eram muito suscetíveis aerros, e a técnica da paridade foi amplamente utilizada com o objetivo dedetectar eventuais erros na memória. Com o passar dos anos, as memóriasDRAM foram aperfeiçoadas e tornaram-se mais confiáveis, fazendo com queo uso da paridade pudesse ser dispensado, pelo menos nas aplicações menoscríticas. Ainda assim, computadores que necessitam de alta confiabilidadecontinuam utilizando módulos de memória com paridade para aplicar umoutro método mais eficiente para correção de erros, conhecido como ECC –Error Correction Code.

A paridade nos PCs consiste em adicionar a cada grupo de 8 bits, um nonobit, chamado de bit de paridade. Este bit funciona como um dígitoverificador, e permite detectar a maior parte dos erros na memória. Módulos

11-70 Hardware Total

SIMM/72 com paridade operam com 36 bits ao invés de 32, e módulosDIMM/168 (SDRAM) e DIMM/184 (DDR) com paridade operam com 72bits ao invés de 64. Módulos RDRAM com paridade utilizam 18 bits, aoinvés de 16. A paridade que já foi tão importante há alguns anos atrás, caiude importância pelo fato das memórias terem se tornado mais confiáveis.Inclusive muitos chipsets para PCs de baixo custo não fazem checagem deparidade, nem usam ECC.

Os bits de paridade não são acessíveis ao processador. São usados por doiscircuitos existentes no chipset: circuito gerador de paridade e circuitochecador de paridade. O circuito gerador de paridade escreve o bit deparidade de cada grupo de 8 bits nas operações de escrita na memória. Ocircuito testador de paridade verifica a paridade em cada grupo de 8 bits lidoda memória. Vejamos como funciona o bit de paridade e como é feita adetecção de erros na memória. Para simplificar a explicação, tomaremosapenas um grupo de 8 bits, mais um bit de paridade. Nas placas de CPUmodernas, este mesmo circuito aparece repetido 8 vezes, completando assim64 bits, ou 72 contando com os bits de paridade.

Figura 11.64

Geração do bit de paridade.

A figura 64 mostra como ocorre uma operação de escrita na memória, com ouso do bit de paridade. O circuito gerador de paridade recebe o valor que oprocessador coloca na memória e "conta" quantos bits "1" estão sendoescritos. A partir dessa "conta", escreve um bit de paridade de tal forma que,ao considerar o conjunto de 9 bits, o número total de bits "1" será sempreímpar. Portanto, o circuito gerador de paridade garante que em cada grupode 9 bits da memória existirá sempre um número ímpar de bits "1".

Capítulo 11 - Memórias 11-71

Figura 11.65

Checagem da paridade.

Vejamos agora como funciona a operação de leitura da memória. Nessecaso, entra em jogo o circuito testador de paridade. Em cada operação deleitura, este circuito recebe os 8 bits que o processador está lendo e mais obit de paridade, formando um total de 9 bits, e "conta" o número de bits "1"que existem neste conjunto. Se tudo correr bem, deverá existirobrigatoriamente um número ímpar de bits "1". Caso não exista um númeroímpar de bits "1", significa que ocorreu um erro na memória. Este circuitogerará o que chamamos de interrupção do processador, que imediatamentesuspenderá o processamento e apresentará uma mensagem de erro. Sob oWindows, este será um daqueles erros do tipo “tela azul”. Será precisoresetar o computador. Desta forma, o erro não será propagado, evitando quesejam causados danos aos dados.

Vejamos como é feita a detecção de erros. Suponha que o processadorescreve na memória, um byte com valor binário 01000001. O circuitogerador de paridade, ao encontrar neste valor dois bits "1" gerará um bit deparidade igual a 1. Suponha que depois deste dado estar armazenado namemória, o segundo bit da direita para a esquerda transforma-se em "1",devido a um erro na memória. Ficará então armazenado o valor 01000011 eo bit de paridade será 1. Quando o processador ler este valor, o circuitotestador de paridade encontrará um total de 4 bits "1" no grupo de 9 bits, oque caracteriza um erro na memória.

O circuito de paridade não é capaz de detectar um erro em que existem doisbits simultaneamente errados no mesmo grupo de 8 bits. Entretanto, o erroem um único bit é o mais comum. A probabilidade de existirem dois bitserrados é milhares de vezes menor que a de existir apenas um errado. Aparidade é a técnica mais simples para detectar erros na memória, mas émuito eficaz. Caso seja detectado um erro na memória, o usuário deve provi-denciar sua manutenção. Será necessário substituir o módulo de memóriadefeituoso.

11-72 Hardware Total

ECC

Uma outra técnica mais eficiente tem sido utilizada para detectar e corrigirerros na memória. Trata-se do ECC, e tem sido utilizada em placas de CPUde alta confiabilidade, como as usadas em servidores. Para cada grupo de 64bits, 8 bits adicionais são usados para detecção e correção de erros. Por isso,dizemos que os módulos DIMM/168 de 72 bits não são ditos “comparidade”, e sim, “com ECC”.

Qualquer bit armazenado na memória apresenta uma pequenaprobabilidade de erro. Dentro de uma célula de memória, a probabilidadede ocorrer erro em apenas um de seus bits é muito maior que aprobabilidade de ocorrerem erros simultâneos, ou seja, em dois ou mais bits.Cálculos de probabilidade podem ser feitos para mostrar que, sendo muitopequena a probabilidade de um bit apresentar falha, temos:

Tipo de falha ProbabilidadeFalha em um bit isolado pFalha em 1 bits dentro de um grupo de 8 bits 8pFalha em 2 bits simultâneos em um grupo de 8 bits 28p2

Falha em 3 bits simultâneos em um grupo de 8 bits 56p3

Para simplificar os cálculos, suponha um chip de memória de baixíssimaconfiabilidade, com probabilidade de 1 em 1000 (p=0,001) de falha. Asprobabilidades de falhas em grupos de 1, 2 e 3 bits seriam:

Tipo de falha ProbabilidadeFalha em um bit isolado 0,001Falha em 1 bits dentro de um grupo de 8 bits 0,008Falha em 2 bits simultâneos em um grupo de 8 bits 0,000028Falha em 3 bits simultâneos em um grupo de 8 bits 0,000000056

Comparando esses números, vemos que a probabilidade de dois bitsfalharem simultaneamente (0,008) é 285 vezes maior que a probabilidade defalharem dois bits simultaneamente. A chance de falharem 3 bits ao mesmotempo é 142857 vezes menor que a de falhar apenas um bit. Na prática estadiferença é ainda maior, portanto todos os mecanismos de detecção ecorreção de erros são voltados a resolver problemas causados por erros dotipo single bit.

As falhas nas células de memória são causadas por bombardeamento departículas alfa e raios cósmicos. Não só as memórias, chips em geral e os

Capítulo 11 - Memórias 11-73

seres vivos são continuamente bombardeados por essas radiações, porém emintensidades baixíssimas e inofensivas. Periodicamente ocorrem tempestadeseletromagnéticas, que são explosões solares que emitem grande quantidadede partículas alfa. Circuitos digitais podem ser afetados nessas ocasiões,através de raríssimos mas reais, erros nos bits armazenados nas suas célulasde memória.

No início dos anos 80, as células de DRAM eram muito sensíveis, e podiamapresentar em média, um erro a cada 30 horas. Note que este tempo médioentre falhas (MTBF) é menor, quanto maior é o número de células dememória. Nos PCs atuais, o MTBF de um bit é bem maior (ou seja, podempassar muitos anos sem ocorrerem falhas), mas quando levamos em contamemórias de 256 MB e superiores, comuns em servidores, chegamos aMTBFs que variam entre 1 mês e 1 ano. Portanto é real a probabilidade deocorrência de um erro em um dos seus bits, em períodos razoavelmentepequenos, principalmente quando levamos em conta que um servidor ficaligado 24 horas por dia. Não quer dizer que é preciso ficar ligado um mêspara o erro ocorrer. Em um grupo de 256 MB, o erro pode acontecer depoisde um ano, em outro pode ser depois alguns meses ou semanas, em outropode ocorrer até no primeiro dia de uso. É tudo estatístico, um MTBF de ummês significa que se tomarmos vários computadores e marcarmos o tempotranscorrido até aparecer o primeiro erro, a média será de um mês.

Esses erros não são permanentes, são apenas uma troca de bit (0 setransforma em 1 ou 1 se transforma em 0). Se o bit errado for detectado ecorrigido, esta célula de memória continuará funcionando normalmente.

Códigos de detecção e correção de erros são bastante utilizados em todos osmeios de armazenamento de dados, como:

Memória RAM Disco rígido Disquetes CD-ROM Fitas magnéticas

Sempre que as informações são guardadas em discos rígidos, disquetes eoutros meios de armazenamento, são adicionados códigos para futurachecagem de erros, o que aumenta a sua confiabilidade. Memórias RAM sãobastante confiáveis, mas nas aplicações em que é necessária uma

11-74 Hardware Total

confiabilidade ainda maior, também utilizam códigos de correção de erros(ECC).

Como corrigir um erro na memória

Partimos do princípio de que, quando um erro ocorre em uma célula, esteerro está em apenas um bit. A chance de ocorrerem dois erros simultâneosna mesma célula de memória é praticamente nula. Entretanto são usadoscódigos sofisticados que permitem detectar (mas não corrigir) erros em doisbits simultâneos. O funcionamento desses códigos é muito complexo, porisso mostraremos aqui como resolver o problema mais comum: detectar ecorrigir erros do tipo single bit, ou seja, quando ocorrem em um único bitdentro de uma célula de memória. O método mais empregado é o chamadocódigo de Hamming. Vamos apresentar um método mais simples, bastanteparecido com o código de Hamming. Podemos chama-lo de método deLaercius – que obviamente não é usado na prática, e tem apenas finsexplicativos. Ele não detecta erros em dois bits simultâneos, mas é de simplesentendimento. Este método consiste em adicionar para cada dado, um grupode bits de checagem. Quanto mais bits de dados, mais bits de checagemdevem ser usados. A tabela abaixo mostra para dados de 8, 16, 32 e 64 bits,quantos bits devem ser usados para checagem:

Tamanho dos dados Bits adicionais usando ocódigo de Hamming

Bits adicionais usando o“código de Laercius”

8 bits 5 516 bits 6 632 bits 8 764 bits 8 8

Mostraremos o funcionamento da correção de erros pelo código de Laerciususando dados de 8 bits, por ser mais fácil de entender. O funcionamentopara 64 bits é semelhante, mas didaticamente é mais fácil explicar comofunciona para 8 bits. Para o grupo de 8 bits são adicionados 5 bits dechecagem. Note que na prática não é feita esta checagem para apenas 8 bits,pois adicionando 5 bits, estamos quase dobrando o custo da memória. Paragrupos de 64 bits, usados nos PCs modernos, bastam 8 bits para fazer adetecção e correção de erros, totalizando 72 bits, um aumento bastanteviável que não afeta muito o custo das memórias.

Capítulo 11 - Memórias 11-75

Figura 11.66

Um código simples para correção deerros.

A figura 66 mostra um dado de 8 bits, representado por b7b6b5b4b3b2b1b0. Os5 bits de controle são p1, p2, p4, pd e pp. Esses 5 bits são calculados daseguinte forma:

p1: Paridade calculada entre b5, b7, b3 e b1

p2: Paridade calculada entre b4, b6, b2 e b0

p4: Paridade calculada entre b5, b7, b4 e b6

pd: Paridade calculada entre b7, b6, b5, b4, b3, b2, b1, b0

pp: Paridade calculada entre p1, p2, p4 e pd.

Quando é feita uma gravação na memória, são gerados e armazenados os 5bits de checagem. Quando é feita uma leitura, são lidos os dados e os bits dechecagem. Em função dos dados lidos, os bits de checagem são novamentecalculados. São comparados os bits de checagem armazenados com oscalculados. Se forem iguais, está tudo correto. Se existirem diferenças, temosum erro na memória.

É recalculada a paridade dos dados pd. Também é recalculada a paridadedos bits de controle, pp. Se pd estiver correta, não existe erro nos 8 bits dedados da memória. Se pd indicar erro, então existe um bit errado, ou entreos 8 bits de dados, ou então o erro pode ser o próprio bit pd. Entrará entãoem jogo o bit de paridade pp. Se estiver errado, significa que existe um biterrado, que será necessariamente pd. Isto significa que os 8 bits de dadosestão corretos. Se pp estiver correto, significa que os bits p1, p2, p4 e pd estãocorretos, então o erro está em um dos 8 bits de dados. A explicação pode sermelhor visualizada através da figura 67.

11-76 Hardware Total

Figura 11.67

Correção de erros pelo método deLaercius.

O mais interessante de tudo é a forma pela qual o bit errado é identificado.Ele é indicado pelos valores de p1, p2 e p4 armazenados e calculados.Quando esses bits armazenados são iguais aos calculados, recebem pesozero, quando são diferentes, recebem peso 1, 2 ou 4 respectivamente. Porexemplo, quando p1 calculado é igual ao p1 armazenado, p2 calculado édiferente do p2 armazenado, e p4 calculado é igual ao p4 armazenado, temos0+2+4=6. Isto significa que o bit b6 está errado. Basta invertê-lo (trocar de 0para 1, ou de 1 para 0) e o erro estará corrigido.

Com dados de 64 bits, são usados os bits de checagem p1, p2, p4, p8, p16 e p32,além de pd para indicar a paridade dos dados e pp para indicar a paridadedos bits de checagem. São portanto 8 bits de checagem ao todo. O mesmoesquema da figura 67 é utilizado, e os bits p1, p2, p4, p8, p16 e p32 são usadospara indicar a posição do erro.

OBS: Essa história de código de Laercius é brincadeira. Não sou o criador deste método, estouapenas repetindo o que aprendi em alguma aula de circuitos digitais, lá pelo início dos anos80...

Você não precisa conhecer os métodos utilizados pelos chipsets para detectare corrigir erros na memória, mas precisa saber o seguinte:

a) para cada grupo de 64 bits, são necessários 8 bits adicionais paraimplementar o ECC, totalizando 72 bits.

b) Não adianta simplesmente usar memórias de 72 bits. É preciso que ochipset da sua placa de CPU utilize a geração e a checagem de erros. Muitoschipsets para PCs de baixo custo não operam com ECC.

Memórias ROMA ROM (Read Only Memory, ou memória de apenas leitura) tem duascaracterísticas principais. A primeira, trata-se de uma memória não volátil, ou

Capítulo 11 - Memórias 11-77

seja, que não perde seus dados quando é desligada. Por isso é a memóriaideal para armazenar o BIOS, que precisa entrar em execução assim que ocomputador é ligado. A segunda característica, seu próprio nome já diz. Éusada apenas para operações de leitura, não permitindo gravações. Amaioria das ROMs usadas em PCs utiliza o encapsulamento DIP (Dual In-line Package). O usuário nem mesmo precisa se preocupar com a instalaçãodas ROMs. Já vêm instaladas e prontas para funcionar. As ROMs maiscomuns são as que armazenam o BIOS da placa de CPU e o BIOS da placaVGA.

Figura 11.68

Diagrama de uma ROM.

A figura 68 mostra o diagrama de blocos de uma ROM. O chip recebe oendereço a ser acessado, que é por sua vez usado para acessar a matriz decélulas. O valor lido da célula endereçada é colocado no buffer de saída,que é ligado ao barramento de dados. Existem ainda os sinais de controleOE (Output Enable) e CE (Chip Enable). São comuns ROMs que operamcom células de 8 bits, e muitas operam com 16 bits. A ROM do nossoexemplo pode operar nos modos de 8 e de 16 bits, bastando que sejaespecificado o bit de controle Word/Byte. Note que esta é uma característicaparticular do chip que usamos no exemplo, e não necessariamente estádisponível na maioria das ROMs.

11-78 Hardware Total

Figura 11.69

Operação de leitura em uma ROM.

A figura 69 mostra o diagrama de tempo de uma operação de leitura.Inicialmente é especificado o endereço, e a seguir são ativados os sinais CE eOE. Transscorrido o tempo de acesso, os dados estarão presentes nobarramento de dados. Terminada a leitura devemo ser desativados os sinaisCE e OE, fazendo com que o barramento de dados volte a ficar em altaimpedância.

ROM, PROM, EPROM

As ROMs são encontradas em diversas modalidades. As principaisdiferenças dizem respeito a como os dados originais são armazenados. Emuso normal, a ROM aceita apenas operações de leitura, e não de escrita, masantes disso, é preciso que alguém (normalmente o fabricante) armazene osseus dados.

A ROM é o tipo mais simples. Seus dados são gravados durante o processode fabricação do chip. Um fabricante de placas de CPU, por exemplo,entrega ao fabricante de memórias, o conteúdo a ser gravado nas ROMs. Apartir deste conteúdo, o fabricante de memórias produz uma matriz, com aqual serão construídos milhares de chips. Normalmente só vale a penautilizar ROMs quando se tem certeza de que seus dados não precisarão seralterados, e também quando são produzidas no mínimo 10.000 peças iguais.Nessas condições, o custo de fabricação de cada chip é bastante baixo.

A PROM (Programable ROM) é um tipo de memória ROM, com umadiferença: pode ser programada em laboratório, através de um gravadorespecial. Este tipo de gravação é feito através da “queima” de microscópicoselementos, que são como pequenos fusíveis, feitos de material semicondutor.Uma PROM nova vem em estado “virgem”, ou seja, com todos os seusfusíveis intactos. O processo de gravação faz a queima seletiva desses fusíveis,a fim de representar os bits desejados. Este processo é irreversível. Uma vez

Capítulo 11 - Memórias 11-79

“queimada”, ou seja, programada, uma PROM não pode mais sermodificada. No passado, as PROMs eram usadas em laboratório, durante odesenvolvimento de produtos que seriam posteriormente produzidos emlarga escala, utilizando ROMs. Hoje existem métodos mais eficientes, mas asPROMs ainda são bastante utilizadas quando é necessário criar circuitos dealta velocidade.

A EPROM ou UV-EPROM (Eraseable PROM, ou Ultra Violet EraseablePROM) é uma ROM programável, que pode ser apagada e regravada. Seusdados podem ser apagados através de um feixe de luz ultra violeta de altaintensidade. As EPROMs possuem uma janela de vidro, através da qualpodem incidir os raios ultra violeta usados no processo de apagamento. Essesraios são obtidos em um aparelho especial chamado “apagador deEPROMs”, que consiste em uma caixa plástica com uma lâmpada ultravioleta.

Devido ao seu baixo custo em comparação com as PROMs, as EPROMsforam muito utilizadas pela indústria de informática, para gravação de BIOS,geradores de caracteres e outros dados fixos. Um pequeno fabricante queproduz apenas algumas centenas de unidades de um produto não tem escalade produção suficiente para utilizar ROMs, que precisam ser produzidas aosmilhares. Ao invés disso utilizam EPROMs, que mesmo sendo mais caras,podem ser utilizadas em pequenas quantidades.

Figura 11.70

Um programador de ROMs, usado emlaboratórios de desenvolvimento emanutenção.

Laboratórios de desenvolvimento ou manutenção podem utilizar gravadoresde ROMs (PROM, EPROM, EEPROM, UV-EPROM, FLASH ROM) quesão ligados diretamente ao PC, através da porta serial ou paralela. Medianteo controle feito por um software que o acompanha, esses aparelhos sãocapazes de ler e gravar o conteúdo de um grande número de chips deROMs programáveis.

Flash ROM

Desde os anos 80 existe no mercado um tipo especial de ROM, que podeser programada e apagada eletricamente: a EEPROM ou E2PROM

11-80 Hardware Total

(Eletrically Eraseable Programable ROM). Essas memórias são antecessorasdas atuais Flash ROMs, que têm a mesma característica. São ROMs quepodem ser regravadas através da aplicação de voltagens de programaçãoespeciais. Em uso normal, esta voltagem de programação não chega ao chip,e seus dados permanecem inalteráveis. Este tipo especial de ROM tem sidoutilizado nas placas de CPU a partir de meados dos anos 90 para armazenaro seu BIOS. Pelo fato de serem alteráveis, permitem realizar atualizações doBIOS, através de programas especiais que ativam os seus circuitos degravação. Este programa é fornecido pelo fabricante da placa de CPU.

Figura 11.71

O BIOS da placa de CPU é armazenadoem uma Flash ROM.

As Flash ROMs também foram muito utilizadas para armazenar o “BIOS domodem”. Este termo é errado, o correto é dizer “o firmware do modem”.Trata-de de um software que é executado pelo processador (DSP, ouprocessador de sinais digitais) existentes no modem. Este software possui,entre outros módulos, os protocolos de comunicação. Logo que surgiram osprimeiros modems de 56k bps, dois protocolos de fabricantes diferentescompetiam para ser o padrão do mercado: o X2 e o K56Flex. Nenhumfabricante de modem tinha certeza sobre qual o protocolo seria adotadocomo padrão mundial, por isso passaram a escolher um deles e armazená-loem uma Flash ROM no modem. Uma vez que fosse adotado o padrãodefinitivo, o novo protocolo poderia ser gravado nesta Flash ROM. No iníciode 1998 foi finalmente estabelecido o padrão V.90, e os fabricantes demodems passaram a oferecer através dos seus sites, um programa deatualização para o novo protocolo, a ser gravado na Flash ROM.

Capítulo 11 - Memórias 11-81

Figura 11.72

Flash ROM de um modem.

Shadow RAM

As ROMs são extremamente lentas para os padrões atuais de velocidade dasmemórias. Enquanto as DRAMs modernas apresentam tempos de acessoinferiores a 15 ns (PC66), as ROMs têm tempos de acesso de 100 ns ou mais.Uma outra limitação dos chips de ROM é que normalmente fornecemapenas 8 bits de cada vez. Os processadores modernos precisam ler 64 bitsde cada vez, portanto os dados das ROMs precisam ser agrupados de 8 em8, até formar 64 bits, para só então serem liberados para o processador.Como resultado do elevado tempo de acesso e dos seus singelos 8 bits, asROMs usadas nos PCs são cerca de 100 vezes mais lentas que as RAMs.Existem ROMs rápidas, porém são muito caras. Seria também possívelagrupar 8 ROMs para formar um grupo de 64 bits, mas esta é também umasolução bastante cara para o problema da sua lentidão.

Felizmente existe uma técnica bastante simples e econômica para a soluçãodeste problema, técnica esta utilizada desde o tempo dos PCs 286: a ShadowRAM. A técnica consiste em, logo no início do processo de boot, copiar oconteúdo da ROM (que armazena o BIOS da placa de CPU) para uma áreada RAM. Feita esta cópia, a área de RAM que recebeu a cópia dos dados daROM tem suas operações de escrita desabilitadas. Isto faz com que ocomportamento seja similar ao de uma ROM (Read Only). Finalmente, estaárea de RAM é mapeada sobre o mesmo endereço antes ocupado pelaROM, ao mesmo tempo em que a ROM é desabilitada. A partir daí passa avigorar a cópia da ROM, feita sobre a RAM.

A técnica da shadow RAM é utilizada para acelerar o BIOS da placa deCPU, o BIOS da placa de vídeo e outros BIOS eventualmente existentes emplacas de expansão. A habilitação da shadow RAM é feita através do CMOSSetup.

11-82 Hardware Total

///////// FIM //////////