Preview only show first 10 pages with watermark. For full document please download

Cap11 - Memórias

MANUTENÇÃO DE MICROS - PROFº. HUBERTT GRÜN

   EMBED

  • Rating

  • Date

    December 2018
  • Size

    1.5MB
  • Views

    2,962
  • Categories


Share

Transcript

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: 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 principais características da ROM e da RAM são: Significado Faz leituras Faz escritas Perde dados ao ser desligada ROM Read only memory SIM NÃO NÃO RAM Random access memory SIM SIM SIM Em linhas gerais, essas são as características das memórias tipos ROM e RAM. Existem entretanto ROMs que permitem gravações, e RAM que não perdem dados, como veremos adiante. Encapsulamentos de ROMs Quase sempre você irá encontrar ROMs fabricadas com encapsulamento DIP 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 pelas ROMs do tipo EPROM (ou UV-EPROM). Essas ROMs possuem uma janela de vidro, através da qual os dados podem ser apagados através de raios ultra-violeta. Depois de apagadas, podem ser novamente gravadas. Em uso normal esta janela deve permanecer tampada por uma etiqueta. Portanto nunca retire a etiqueta da ROM expondo sua janela de vidro, pois ela pode ser apagada por exposição prolongada à luz natural. Podemos ainda encontrar ROMs com outros encapsulamentos diferentes do DIP. Um encapsulamento relativamente fácil de encontrar é o PLCC (plastic leadless chip carrier), mostrado na figura 2. Capítulo 11 - Memórias 11-3 Figura 11.2 ROM com encapsulamento PLCC. Encapsulamento das RAMs Os chips de memória RAM também podem ser encontrados em diversos formatos, sendo que o mais comum é o encapsulamento SOJ (small outline package J-lead), mostrado na figura 3. Você encontrará com freqüência este encapsulamento nos chips que formam os módulos de memória e nos que forma 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 de CPU 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 de RAM com encapsulamento SOJ que mostramos na figura 3 são montados em pequenas placas chamadas módulos de memória, que serão apresentados mais adiante. Encapsulamento de módulos de memória Até o início dos anos 90, as memórias dos PCs usavam encapsulamento DIP e eram instaladas, chip por chip. Trabalho fácil para um técnico, mas uma tarefa bastante complexa para um usuário que nunca fez este tipo de trabalho. Os módulos de memória foram criados para facilitar a sua instalação, não só por parte do usuário, mas também pela indústria eletrônica. É muito mais rápido conectar um módulo de memória que instalar um grande número de chips avulsos. Figura 11.5 Chip de memória com encapsulamento DIP e módulos de memória SIPP e SIMM. Os primeiros módulos de memória eram chamados SIPP (single inline pin package), 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 encaixe no soquete apropriado. O processo de fabricação foi simplificado com a adoção dos módulos SIMM (single inline memory module). Ao invés de utilizar terminais de contato como o SIPP, esses módulos têm um conector na sua borda. O soquete para este tipo de módulo é um pouco mais complicado, porém o processo de fabricação dos módulos tornou-se mais simples, e sua instalação mais rápida. Módulos SIPP caíram em desuso no início dos anos 90, sendo substituídos pelo formato SIMM. Esses módulos forneciam 8 bits simultâneos e precisavam ser usados em grupos para formar o número total de bits exigidos pelo processador. Processadores 386 e 486 utilizam memórias de 32 bits, portanto os módulos SIMM eram usados em grupos de 4. Por exemplo, 4 módulos iguais, com 4 MB cada um, formavam um banco de 16 MB, com 32 bits. Os módulos SIMM usados até então tinham 30 contatos, portanto eram chamados de SIMM/30, ou módulos SIMM de 30 vias (ou 30 pinos). Ainda eram 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 de memória com 32 bits. Esses módulos, apesar de serem mais práticos que os SIMM/30, eram pouco utilizados, até o lançamento do processador Pentium. O Pentium trabalha com memórias de 64 bits, portanto seriam necessários 8 módulos SIMM/30 para formar um banco de memória. Isto tornaria a produção complexa, além de ocupar uma grande área na placa de CPU apenas para os módulos de memória. Os fabricantes passaram então a adotar os módulos SIMM/72. Dois desses módulos eram suficientes para formar um banco de 64 bits. Já em 1996 era praticamente impossível encontrar à venda mó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 criados módulos que fornecem 64 bits simultâneos. Esses módulos são chamados DIMM/168 (dual inline memory module), e possuem 168 vias. Um único módulo DIMM/168 forma um banco de memória com 64 bits. É exatamente o número de bits utilizados pelos processadores modernos (Pentium 4, Pentium III, Athlon, Duron, Celeron) e os não tão modernos, como K6, K62, 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 produzida entre 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ória cache de algumas placas de CPU Pentium, e também de algumas placas de CPU 486 e 586 produzidas naquela época. Note que os módulos COAST para placas de CPU Pentium são um pouco diferentes dos utilizados para placas de CPU 486/586. Os módulos para Pentium usam memórias SRAM do tipo Pipelined Burst, que normalmente têm o encapsulamento TQFP. Módulos para 486/586 usam em geral memórias SRAM assíncronas, com o encapsulamento 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 computadores avançados, a partir de 2001. São as memórias RAMBUS (RDRAM) e as memórias DDR SDRAM. Memórias RAMBUS usam o o encapsulamento RIMM de 184 vias (figura 10). Este tipo de módulo é muito parecido com os demais apresentados até aqui, exceto pelo fato de poder ter uma chapa metálica cobrindo seus chips. Note que o módulo da figura 10 não possui esta chapa, que atua como um dissipador de calor. Esses módulos têm tamanho 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 as duas 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 pelas memórias DDR SDRAM. A medida é similar à dos módulos DIMM/168 e RIMM/184, mas esses módulos também possuem um chanfro característico que 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 a diferenç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/184 possuem dois chanfros. Os dois chanfros do DIMM/168 dividem os contatos do conector em três grupos, enquanto os dois chanfros do RIMM/184 ficam mais próximos do centro, mas não existem contatos entre os dois chanfros do RIMM/184. Uma outra diferença: os módulos DIMM/168 possuem um chanfro em forma de semi-circunferência em cada lateral. Os módulos DIMM/184 possuem dois chanfros em cada lateral. RAM estática Até agora abordamos os encapsulamentos usados pelos módulos de memória. Vamos agora apresentar, do ponto de vista eletrônico, os principais tipos de memória RAM. Não confunda tipo com formato. Memórias com formatos (encapsulamentos) iguais podem ser de tipos eletronicamente diferentes, portanto devemos tomar cuidado para não utilizar memórias invá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 em larga escala nos PCs. Quando dizemos que um PC possui, por exemplo, 128 MB, tratam-se de 128 MB de DRAM. São memórias baratas e compactas, o que é 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 a DRAM, uma memória especial, mais veloz, chamada cache, que serve para acelerar o desempenho da DRAM. Há poucos anos, a chamada cache L2 era formada por chips de SRAM, localizados na placa de CPU. Atualmente a cache L2 faz parte do núcleo dos processadores modernos. A DRAM por sua vez pode ser subdividida em outras categorias, sendo as principais:      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 final dos anos 80. Em meados dos anos 80 surgiu a FPM DRAM (Fast Page Mode DRAM), bastante utilizada até meados dos anos 90. Passaram então a ser comuns as memórias EDO DRAM (Extended Data Out DRAM), que por sua vez foram substituídas pela SDRAM a partir de 1997. A partir de 2000, a SDRAM começou a dar lugar à DDR SDRAM e à RDRAM. Memórias SRAM existem desde os anos 60, e memórias DRAM desde os anos 70. Ao contrário do que o nome sugere, a DRAM não é caracterizada pela rapidez, e sim pelo baixo custo, aliado à alta capacidade, em comparação com a SRAM. A alta capacidade é devida ao fato das suas células de memória serem mais simples. Com células mais simples, é possível criar chips com maior número de células de memória. Em compensação, o mecanismo de acesso às suas células de memória é mais complicado. Na RAM estática, basta fornecer o endereço e o comando (leitura, por exemplo), e depois de um certo tempo (tempo de acesso), os dados estarão presentes nas suas saídas. Da mesma forma, nas operações de escrita, basta fornecer ao chip o valor a ser armazenado e o endereço onde deve ser feito este armazenamento, acompanhado do comando de gravação. Passado o tempo apropriado (tempo de acesso), os dados estarão gravados. Funcionamento da SRAM A figura 12 mostra o diagrama simplificado de uma SRAM. Ela recebe endereços (provenientes do processador), e pode enviar os dados que estão armazenados no endereço especificado, ou armazenar os dados neste endereç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 mais detalhada. 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 diversas outras organizações, com várias capacidades diferentes. O tamanho das células mais comuns são 8, 16 e 32 bits, mas encontramos também modelos com células de 9, 18 e 36 bits para uso em aplicações que exigem detecção e correção automática de erros, como veremos mais adiante neste capítulo. *** 75% *** Figura 11.13 Diagrama de blocos de um chip de memória SRAM. Para endereçar os 8 kB no chip da figura 13, são necessários 13 bits de endereç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 256 linhas de 32 colunas. As 256 linhas usam 8 bits para serem endereçadas (A1A8), e as 32 colunas usam 5 bits de endereços (A0, A9, A10, A11, A12). Os pinos 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) e os enviam para os pinos de saída. Nas operações de escrita, os dados presentes no barramento são enviados ao buffer de entrada e então armazenados na matriz de células, na posição selecionada pelo endereço. O chip possui dois sinais de chip enable (CE1 e CE2) que servem para ativar o seu funcionamento. Esta ativação é feita quando CE1=0 e CE2=1. Para fazer uma 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 em uma memória estática. Inicialmente o barramento de dados da memória encontra-se em alta impedância (tristate). Estando o endereço desejado previamente selecionado, fazemos CE1= 0 e CE2 = 1. A seguir ativamos o sinal Output Enable, fazendo OE = 0. O barramento de dados, que anteriormente estava em Tristate, passa a apresentar os dados da célula selecionada. Note que depois de um tempo T1 a partir do instante em que o chip é habilitado (CE1=0 e CE2=1), os dados já estão prontos para serem enviados para o barramento de dados, mas só o são efetivamente depois que transcorre um tempo T2 com o sinal OE ativado. Passado um tempo T3 depois que OE é desativado (OE=1), o barramento de dados voltará a ficar em alta impedância. Figura 11.15 Escrita em uma SRAM. A figura 15 mostra o diagrama de tempo de uma operação de escrita em uma RAM estática. É preciso que o endereço seja selecionado, que os dois sinais de chip enable sejam ativados (CE1=0 e CE2=1) e que o sinal de output enable seja desativado (OE=1). Os dados a serem gravados são fornecidos ao barramento de dados (Data IN Valid), e o sinal Write Enable é ativado. Os dados na entrada devem permanecer estáveis durante um tempo mí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 pode ser lido na saída Y. Para armazenar bits, as entradas R e S são ativadas de acordo com o valor desejado. *** 35% *** Figura 11.16 Célula de memória. Veremos a seguir como construir este circuito utilizando transitores MOS. O princípio básico da célula de memória é a ligação de dois inversores, como mostra a figura 17. Este circuito tem a capacidade de armazener um bit. Se a entrada 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. Este 0 por sua vez é enviado à entrada do primeiro inversor, mantendo o circuito estabilizado, 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 1 na entrada do primeiro inversor, e na sua entrada teremo um bit 0. Este 0 será recebido pelo segundo inversor, produzindo um bit 1 na sua saída. Sabemos portanto que o circuito armazena bits, mas é preciso algo que possa indicar o valor do bit a ser armazenado. O uso de portas NAND como na figura 16, permite usar as entradas R e S para indicar o bit a ser gravado. Na figura 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 utilizam resistores no lugar de T1 e T3, resultando em células de 4 transitores e 2 resistores. Os dois transistores adicionais (T5 e T6) são usados para ler e para gravar 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 ser armazenado. Para armazenar um bit 1, fazemos D=1 e D’=0. Para armazenar um bit 0, fazemos D=0 e D’=1. b) Estando definidos os valores de D e D’, o sinal SELECT é ativado. Isso ativará os dois transistores ligados em D e D’, transferindo seus valores para a célula. Quando o sinal SELECT é desativado, o bit permanecerá armazenado na célula. Note que o SELECT é definido a partir do endereço da posição de memória a ser acessada. A operação de leitura consiste em ligar o sinal SELECT, fazendo com que os valores de D e D’ passem a indicar o bit armazenado na célula. Esses sinais passam 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úmeras categorias: Assyncrhonous SRAM, Syncrhonous SRAM, Dual Port SRAM, SyncBurst SRAM, ZBL SRAM, NoBL SRAM, Pipelined Burst SRAM e vários outros nomes. É verdade que existem excesso de nomes, pois um mesmo 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ória apresentada 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 da matriz de células. Vamos apresentar então essas diversas tecnologias, começando pelas memórias SRAM Assíncronas e Síncronas (Assynchronous SRAM e Syncrhonous SRAM). A SRAM Assíncrona é o tipo mais simples, apresentado na seção anterior “Funcionamento da SRAM”. Conforme mostramos na figura 13, ao redor da matriz de células temos apenas os seletores de endereços, registradores e buffers de entrada e amplificadores e buffers 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 utiliza clock. Seus controles são assíncronos, e consistem em sinais como Chip Enable (CE), Output Enable (OE) e Write Enable (WE). Essas memórias apresentavam tempos de acesso como 35, 25, 20 e 15 ns, e eram 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 maioria desses processadores operavam com clocks externos de até 33 MHz, e alguns deles chegando a 40 MHz (Ex: Am486DX2-80). Quanto mais elevado é o clock, menor deveria ser o tempo de acesso das SRAM assíncronas. Um 486DX2-80 opera com clock externo de 40 MHz, o que corresponde a um ciclo de 25 ns. O tempo de acesso da SRAM deveria então ser bem reduzido, entre 10 e 15 ns. Quando a SRAM não era suficientemente veloz, era preciso utilizar wait states, programados pelo CMOS Setup. Isto tornava o acesso à SRAM mais lento. Com a introdução do Pentium e do barramento externo de 66 MHz, um novo 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ém de baixa capacidade e extremamente caras. Apenas para ilustrar, saiba que desde o início dos anos 90 existiam memórias SRAM com tempos de acesso inferiores a 0,1 ns. Essas memórias eram caríssimas e destinam-se ao uso em supercomputadores e aplicações de alta velocidade. A indústria de memórias não é movida apenas pelo mercado de PCs, mas o peso deste mercado é bastante significativo. As memórias SRAM para PCs, apesar de não terem dificuldades tecnológicas na sua produção, precisam ter alta capacidade e baixo custo. O que tem ocorrido em termos de tecnologia de memórias para PCs é o desenvolvimento de novos tipos de memória com baixo custo, alta capacidade 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-se vantajoso o uso de memórias sínronas. Essas memórias têm como principal característica o fato de serem comandadas a partir de um clock. Atualmente tanto a SRAM como a DRAM usadas nos PCs são síncronas. *** 75% *** Figura 11.19 Transferência de dados em uma SRAM síncrona. A figura 19 mostra o funcionamento de uma SRAM síncrona. Além do sinal CE (sinal que habilita o chip) e ADSC (sinal que dá início ao ciclo), temos um sinal de clock (CLK) que sincroniza todos os eventos. No instante T1, o endereço desejado (A1) deve ser entregue aos pinos do chip, e os sinais CE e ADSC 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 no endereço A1 estará presente no barramento de dados. A partir daí a memória entregará automaticamente, nos instantes T4, T5 e T6, os dados armazenados nas posições de memória seguintes (A1+1, A1+2 e A1+3). Por exemplo, ao fornecer o endereço 1000, a memória entregará os dados armazenados nos endereços 1000, 1001, 1002 e 1003. Como a entrega do primeiro dado demorou 2 ciclos e os dados seguintes foram entregues em intervalos de 1 ciclo, dizemos que esta memória está operando no modo 2-11-1. Dizemos ainda que a memória tem latência de 2 ciclos. Memórias mais lentas podem necessitar operar com latência de 3 ciclos (3-1-1-1, por exemplo). A latência é necessária para que os circuitos internos da memória tenham tempo de encontrar a célula desejada. Uma vez encontrada, as células seguintes são localizadas de forma mais rápida, já que ocupam posições consecutivas. Enquanto a SRAM assíncrona tem sua velocidade especificada pelo seu tempo de acesso, ou seja, o tempo que demora para encontrar o dado endereçado (medido em nano-segundos), a SRAM síncrona tem sua velocidade indicada pelo seu clock, ou seja, o máximo clock com o qual pode 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 inverso do clock. Veja por exemplo os tempos de ciclo e clocks das versões do chip MT58L64L18PT, fabricado pela Micron Technology. Este chip tem 64k células de 18 bits, e é oferecido para clocks de 100, 133 e 166 MHz. Modelo MT58L64L18PT-10 MT58L64L18PT-75 MT58L64L18PT-6 Ciclo 10 ns 7,5 ns 6 ns Clock 100 MHz 133 MHz 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 de desempenho em comparação com as assíncronas, para freqüências de 50, 60 e 66 MHz. Entretanto logo surgiu a necessidade de operar com freqüências ainda mais elevadas, não permitidas pela tecnologia tradicional com a qual eram construídas as primeiras SRAM síncronas. Para premitir freqüências de operação mais elevadas, os fabricantes de memória introdiziram o modo pipelined. A idéia é bastante simples e resulta em clocks maiores, mesmo utilizando células de memória idênticas. Estamos falando da época em que foi ultrapassada a barreira dos 66 MHz, mas levando em conta memórias mais atuais, a mesma tecnologia que permite construir memórias atuais “não pipelined” de 133 MHz permite também produzir memórias pipelined de 166 MHz. Figura 11.20 Diferença entre a SRAM Pipelined e a non-Pipelined. Capítulo 11 - Memórias 11-17 A diferença entre os dois tipos está mostrado na figura 20. Um chip de memória SRAM síncrona comum (chamado de non-pipelined ou flowthroug) tem em seus buffers de saída o valor idêntico ao apresentado pelos sense amplifiers, que por sua vez reproduzem o valor lido da matriz de células de memória. Os valores presentes no barramento de dados do chip precisam permanecer estáveis durante um tempo mínimo, para que o processador e o chipset possam fazer a sua leitura. A necessidade deste tempo mínimo impede que a matriz de células dê início ao próximo ciclo de leitura, ou seja, ela precisa “esperar um pouco”. Nas memórias pipelined, os dados recebidos da matriz de células passam pelos amplificadores e são armazenados em registradores de saída (output registers). Ao contrário do buffer, que se limita a passar adiante os valores lidos nas suas entradas, o registrador é capaz de memorizar suas entradas e manter esses valores memorizados nas suas saídas, mesmo que as entradas posteriormente mudem de valor. Graças aos registradores, a saída do barramento de dados da memória fica estabilizada, e a matriz de células pode ser novamente usada para o próximo acesso. Como graças ao registrador a matriz de células não precisa mais “esperar” a leitura do dado pelo processador, temos um maior aproveitamento, resultando em maior velocidade. Apesar de possibilitar operar com clocks mais elevados, uma SRAM pipelined tem a desvantagem de exigir um ciclo a mais para o carregamento do 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ém com 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 SRAM demoraria 60 ns (6 x 10 ns). A mesma SRAM não conseguiria operar no modo 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 a levar vantagem sobre memórias SRAM não pipelined de tecnologia semelhante (com células obtidas pelo mesmo processo de fabricação, e em conseqüência, de mesmo preço). Ao adotarem a operação em modo pipeline, as memórias SRAM síncronas passaram a ser chamadas de Pipelined Burst SRAM. As memórias SRAM síncronas porém sem o recurso pipeline passram a ser chamadas apenas de Burst SRAM, Syncrhonous Burst SRAM, SyncBurst SRAM ou Flow-Through SyncBurst SRAM. Note que apesar desses nomes, as memórias SRAM Pipelined também são síncronas e também operam em modo burst, portanto podem ser ainda chamadas de Pipelined Syncrhonous Burst SRAM. 11-18 Hardware Total Os dois tipos de Syncronous Burst SRAM foram criados especificamente para operar como caches secundárias em placas de CPU equipadas com processadores Pentium e superiores. Até hoje encontramos essas memórias formando a cache L2 nas placas com Socket 7 (Ex: K6-2). Também foram utilizadas na formação da cache L2 discreta dos processadores com encapsulamento em cartucho, como Pentium II, Pentium III Katmai e nas primeiras versões do AMD Athlon. DDR e QDR Memórias DDR SDRAM foram criadas visando a operação em clocks ainda mais delevados. Elas utilizam a técnica DDR (Double Data Rate), na qual duas matrizes de células independentes são acessadas por dois clocks (na figura 21 os clocks são K e K#). O sinal K# tem o valor oposto de K, ou sejam tratam-se de clocks complementares, requisito comum em todos os dispositivos que operam com DDR. Na figura 21, o endereço é fornecido à memória e é ativado o sinal LD#. O sinal 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ês dados seguintes serão fornecidos a cada meio período de K, portanto são duas 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 SRAM MT57V256H36PF, produzido pela Micron Technology. São oferecidas versões de 166, 200, 250 e 300 MHz. Note que esses clocks, ao utilizarem double data rate, resultarão em equivalentes a 333, 400, 500 e 600 MHz. Modelo Ciclo Clock Capítulo 11 - Memórias MT57V256H36PF-3.3 MT57V256H36PF-4 MT57V256H36PF-5 MT57V256H36PF-6 11-19 3.3 ns 4 ns 5 ns 6 ns 300 MHz 250 MHz 200 MHz 166 MHz Memórias QDR (Quad Data Rate), ao contrário do que possa parecer, não são como DDRs que fazem 4 transferências por ciclo. São na verdade memórias com dois barramentos de dados independentes, um de entrada e um de saída. Cada um deles opera com double data rate. Quando ambos estão operando ao mesmo tempo, temos como resultado uma taxa de dados quadruplicada em relação ao clock. Memórias DDR SRAM e QDR SRAM são indicadas para aplicações de alta velocidade, 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 de escrita, sem a necessidade de pausas (latency ou turnaround). Todos os demais tipos de SRAM síncrona têm a limitação de não poderem passar imediatamente de uma leitura para escrita, ou vice-versa. A razão disso é que o sistema de endereçamento interno da memória tem diferenças, nas leituras e nas escritas. É preciso então tempo para a memória desativar internamente o 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) ou Network SRAM – o nome varia conforme o fabricante – têm seus circuitos internos de endereçamento organizado de forma que o mesmo endereçamento usado para a leitura é usado também para a escrita, portanto não tem necessidade esperar pela desabilitação de um circuito e a habilitação de outro quando são feitas inversões entre operações de leitura e gravação. Dual Port SRAM Este é um tipo especial de memória que pode ser acessada simultaneamente por dois barramentos independentes. A figura 22 mostra o diagrama de uma memória Dual Port. 11-20 Hardware Total *** 75% *** Figura 11.22 Diagrama de uma Dual Port SRAM. Como vemos, existem dois conjuntos de sinais independentes, com barramento de dados, endereços e controle. Até os circuitos internos são simétricos e independentes. Ambos acessam uma única matriz de células de memória. Note que existem muitos casos em que são usadas memórias comuns e existe mais de um circuito que faz acessos. A memória DRAM de uma placa de CPU, por exemplo, é acessada pelo processador, pelo chipset, pela placa de vídeo AGP, pelas interfaces de disco rígido e por outras interfaces que operam com DMA (acesso direto à memória). A diferença é que nesses casos, apenas um dispositivo pode acessar a memória a cada instante, e todos os demais têm que aguardar. Já no caso das memórais Dual Port, os dois dispositivos podem realizar acesso simultâneos. A matriz de células é dividida em bancos independentes, de modo que é mínima a possibilidade de colisão, ou seja, quando ambos os circuitos querem acessar o mesmo banco. Apenas quando ocorre colisão, um circuito terá que esperar pelo acesso. Existem inúmeras aplicações para memórias Dual Port. Um exemplo é a cache externa em placas com múltiplos processadores (não estamos falando de PCs, mas de máquinas mais sofisticadas). Placas de vídeo de alto desempenho também podem fazer uso deste tipo de memória. Ao mesmo tempo em que a memória de vídeo está sendo lida e transferida para o monitor, 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 o mesmo 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órias que usam a tecnologia MOS, já que existem vários outros tipos. Um exemplo sã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 de memória SRAM chamada de 1T-SRAM. Cada célula utiliza apenas um transitor e um capacitor. Este capacitor é o responsável pelo armazenamento de uma carga que representa um bit, e é na verdade construído com o mesmo material usado na formação dos transitores. Esta tecnologia foi criada pela MoSys, que por sua vez a licenciou para vários outros fabricantes, como UMC, NEC e Sony. Note que este tipo de célula de memória não é na verdade estático. Trata-se de uma memória dinâmica, porém é acrescida de circuitos internos (refresh transparente, por exemplo), que a tornam do ponto de vista externo, similar a uma SRAM. Memórias DRAM que fazem refresh interno existem há vários anos, e são chamadas de RAM pseudo-estáticas. Tempo de acesso O tempo de acesso é um parâmetro muito importante, relacionado com a velocidade das memórias. Aplica-se especificamente às memórias SRAM assíncronas, e indica o tempo necessário para que os dados estejam disponí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 de acesso é T1. Note que os dados estarão disponíveis desde que o sinal OE (output enable) seja selecionado previamente. Se não for selecionado, os dados não estarão disponíveis. Figura 11.23 Tempo de acesso de uma SRAM assí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 parte da 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 o período, dependendo do fabricante. O período é igual a 1 segundo dividido pelo clock. Por exemplo, um clock de 100 MHz corresponde a um período de 10 ns. Ciclo 20 ns 15 ns 13,3 ns 12 ns 10 ns 8 ns 7,5 ns Clock 50 MHz 66 MHz 75 MHz 83 MHz 100 MHz 125 MHz 133 MHz Ciclo 7 ns 6 ns 5 ns 4 ns 3,3 ns 3 ns 2,5 ns Clock 143 MHz 166 MHz 200 MHz 250 MHz 300 MHz 333 MHz 400 MHz Quando dizemos que um chip de memória tem ciclo de 10 ns, não quer dizer que demorará 10 ns até entregar um dado. Dependendo do tipo de memoria, irá demorar 2 ou 3 ciclos par entregar o primeiro dado (isto é o que chamamos de latência), o que neste caso corresponde a 20 ou 30 ns. A partir do fornecimento do primeiro dado, os três dados seguintes são entregues a cada 10 ns, desde que a memória esteja operando em modo burst. Wait states O wait state é um recurso que permite o uso de memórias lentas com processdores rápidos. Para isso basta “avisar” o processador para que espere um pouco mais antes de ler os valores do seu barramento de dados (nas operações de leitura), ou que espere um pouco mais antes de finalizar uma escrita, para dar tempo às memórias para receberem o dado. O funcionamento é exemplificado na figura 25. Capítulo 11 - Memórias 11-23 *** 75% *** Figura 11.25 Acessos à memória. a) sem wait state b) com 1 wait state Ao fazerem acessos aleatórios na memória externa, o processador espera normalmente 2 ciclos. O ciclo tem duração de acordo com o clock externo do processador. Por exemplo, com clock externo de 100 MHz, o ciclo tem duraçã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) o processador deve entregar o endereço ao barramento, juntamente com outros sinais de controle. No final do ciclo seguinte, o processador testa o sinal da sua entrada de controle RDY (Ready). Se estiver em nível 0, significa que o ciclo pode ser finalizado, e que o dado estará disponível no seu barramento de dados. Quando as memórias não são suficientemente velozes, o seu circuito de controle (faz parte do chipset) pode retardar o envio do sinal RDY. Se no final do ciclo T2 o sinal RDY não estiver ativado (ou seja, com valor 0), o processador automaticamente esperará mais um ciclo. Esta “prorrogação”, representada pelo segundo T2 na parte B da figura 25, é o que chamamos de 1 wait state. O processador pode aguardar mais 2, 3 ou quantos wait states adicionais forem necessários, até que o circuito controlador da memória ative o sinal RDY com valor 0, o que finaliza o ciclo. No nosso exemplo, usar um wait state aumentou o tempo total da leitura para 30 ns. Com 2 wait states teríamos 40 ns, com 3 wait states teríamos 50 ns, e assim por diante. Cabe ao BIOS da placa de CPU programar o chipset com o número recomendado de wait states suficiente para as memórias em uso. Note que os processadores possuem dois pinos de Ready. O primeiro é o RDY 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. Nesta modalidade são feitas transferências em grupos de 4. Uma transferência normal em modo burst obedece à temporização 2-1-1-1, mas através do sinal BRDY, o processador pode operar em outros modos, como 3-1-1-1, 3-2-2-2, 42-2-2, e assim por diante. Portanto os wait states podem ser usados tanto em operações assíncronas quanto síncronas. 11-24 Hardware Total RAM dinâmica, modos FPM e EDO Memórias estáticas têm células relativamente grandes, em geral com 6 transistores. Como resultado, essas memórias são pouco densas, ou seja, não permitem a obtenção das elevadas capacidades de memória exigidas pelos PCs 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 custo bem elevado. As células de DRAM As memórias dinâmicas (DRAM) foram criadas visando obter redução de espaç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. O tamanho 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 em D seja transferida para o capacitor. A seguir a linha SELECT é desligada, e o capacitor 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. Quando a linha SELECT é ligada, a carga armazenada no capacitor da célula e a carga armazenada na linha D são distribuídas, resultando em tensões iguais. Se o capacitor estava originalmente descarregado (bit 0), ocorrerá uma pequena redução na tensão existente em D. Se o capacitor já estava carregado (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 o original (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 a leitura, o bit identificado é novamente gravado na célula, o que restaura seu valor original. Além do funcionamento desta célula ser relativamente complicado, existe mais um agravante: o capacitor se descarrega depois de alguns milésimos de segundo. Para que os bits não sejam perdidos é preciso que toda a memória seja periodicamente lida, restaurando as cargas dos capacitores. É o que chamamos de refresh. A matriz de células de memória DRAM é um grande grupo de linhas SELECT que se cruzam com linhas D. Para endereçar uma célula de memória é preciso selecionar a linha SELECT e a linha D, em função do endereço desejado. A figura 27 mostra de forma simplificada, a construção de uma célula de DRAM. A célula real é mais complexa, tridimensional. As várias linhas D e SELECT 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ão deixa de estar correto, pois os capacitores são os responsáveis pelo armazenamento dos bits. Note entretanto que o transitor ocupa um espaço bem maior, como vemos na figura 27. O capacitor é mantido com o menor tamanho possível para que o processo de fabricação resulte em chips com mais células. Capacitores maiores só teriam como vantagem, a permanência da carga por um período maior, mas ainda assim na faixa de milésimos de segundo, 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) da linha desejada, e depois o endereço da coluna. Os dados lidos são enviados para o barramento de dados. O mesmo ocorre na operação de escrita, sendo que os dados são recebidos do barramento de dados e colocados na célula selecionada. Dois sinais RAS e CAS servem para indicar quando estão presentes os endereços da linha e coluna. Alguns chips necessitam receber um sinal externo MA, para comandar o demultiplexador de endereços, enviando os números da linha e coluna para os circuitos apropriados. A maioria 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% *** Figura 11.28 Diagrama simplificado de 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, e cada uma delas possui 4 bits. Esses bits são representados no diagrama como DQ0, DQ1, DQ2 e DQ3. Para endereçar essas 16M células, o chip tem 12 bits de endereço. Como o endereço é fornecido em duas etapas (linha e coluna), 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% *** Figura 11.29 Diagrama completo de um chip DRAM. Observe ainda na figura 29 que como o chip do exemplo tem “células de 4 bits”, existem ao todo 4 bancos de células independentes. Cada um deles recebe 4096 linhas (sinais SELECT das figuras 26 e 27) e 4096 colunas, que são os sinais de dados (são os sinais D nas figuras 26 e 27). Vemos ainda o chip do exemplo tem um módulo chamado REFRESH CONTROLLER. Este módulo é capaz de realizar internamente as operações de refresh (é o que chamamos de self refresh), aliviando o trabalho dos circuitos externos. Tradicionalmente, o refresh tem sido feito pelo controlador de memória DRAM (que faz parte do chipset). Em aplicações nas quais o sistema tem que ficar em estado de espera, o chipset pode ser desligado e o próprio chip de memória se encarrega de realizar internamente o refresh. Quando o chip de SRAM não faz self refresh, cabe ao controlador de memória realizar esta operaçã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 mais complexo que o da SRAM. Suas células de memória são organizadas em uma matriz, formada por linhas e colunas. Por exemplo, uma DRAM com 1 Mbit é formada por uma matriz quadrada, com 1024 linhas e 1024 colunas (podem existir formatos diferentes, como 2048x512). Para acessar uma dessas células de memória, é preciso primeiro fornecer à DRAM o endereço da linha, seguindo de um sinal chamado RAS (Row Address Strobe). Serve para indicar que o endereço da linha está pronto. A seguir deve ser fornecido à memória o endereço da coluna, seguido do sinal CAS (Column Address Strobe). Passado mais um pequeno tempo, o dado daquela célula de 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ão estão preparados para gerar sinais RAS e CAS, nem para dividir o endereço em linha e coluna. O processador simplesmente indica o endereço de memória que deseja acessar, e a seguir envia um comando de leitura ou escrita. Cabe ao chipset converter os sinais de acesso à memória vindos do processador, em sinais compatíveis para a DRAM. Esta é a função de uma parte do chipset chamada Controlador de DRAM. Figura 11.30 O Chipset é encarregado de controlar o acesso à DRAM. O trabalho completo do chipset (controlador de DRAM) para obter um dado proveniente da DRAM é resumido na seguinte seqüência: 1) Chipset recebe do processador, o endereço da célula a ser acessada 2) Chipset desmembra o endereço em duas partes: linha e coluna 3) Chipset envia à DRAM, o endereço da linha 4) Chipset envia à DRAM o sinal RAS 5) Chipset envia à DRAM o endereço da coluna 6) Chipset envia à DRAM o sinal CAS 7) A DRAM acessa o dado armazenado nesta célula e o entrega ao chipset 8) 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 da memória é igual à soma desses tempos. É preciso que você entenda bem este mecanismo 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 a ativação do sinal RAS, que é colocado em nível 0. Neste momento o barramento de endereços da memória (ADDR) deve estar preparado com o número da linha (ROW) a ser acessada. Após um tempo especificado, o barramento de endereços deve receber o número da coluna, e a seguir deve ser ativado o sinal CAS. Logo a seguir, o barramento de dados (DQ), que antes estava em tristate, entregará o dado lido da célula selecionada. Note que para isso é preciso que o sinal OE (Output Enable) seja ativado em zero. Chamamos tempo de acesso da memória DRAM, o tempo transcorrido entre a ativação do RAS e a chegada do dado lido. Uma memória com especificação –50, por exemplo, demorará 50 ns para entregar o dado lido a partir do instante da ativação do RAS. Utilizando a estutura básica da matriz de células de DRAM, vários outros tipos de memória têm sido desenvolvidos nos últimos anos. As principais forma a FPM DRAM, EDO DRAM, SDRAM, DDR SDRAM, RDRAM. Todas elas são mais avançadas que a DRAM original, resultando em maior velocidade, mas ainda assim todas utilizam matrizes de células idênticas. A diferença está nos circuitos internos que dão acesso a essas células. Por exemplo, usando 4 matrizes de células operando de forma simultânea, temos a SDRAM. Este tipo de memória opera de forma síncrona, e demora um tempo inicial para acessar o primeiro dado, e a seguir transfer os 3 dados seguintes (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 matrizes funcionando em conjutno, temos a RDRAM (Rambus RAM). FPM DRAM Essas memórias foram usadas nos PCs antigos, em praticamente todos os PCs 386, 486 e 586 e nos primeiros PCs Pentium. No passado eram encontradas no encapsulamento DIP, depois foram produzidas em módulos SIPP e SIMM/30. É correto dizer que todos os módulos SIPP e SIMM eram formados 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ódulo SIMM/72 é do tipo FPM DRAM. Era comum encontrar módulos SIMM/72 tanto 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 em células consecutivas. Considere por exemplo um grupo de 4 acessos às posiçõ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 Linha Linha Linha 277, coluna 277, coluna 277, coluna 277, coluna 320 321 322 323 Lembre-se que cada linha é acompanhada de um sinal RAS, e cada coluna é acompanhada de um sinal CAS. Ora, quando tomamos posições consecutivas de memória, as linhas são as mesmas e o que varia é apenas a coluna. Seria então uma perda de tempo repetir no segundo, terceiro e quarto acessos, o número da linha. Basta indicar o número da coluna. O chamado Fast Page Mode tem como principal característica, o acesso a várias colunas de uma mesma linha, bastando que sejam fornecidos os endereços das colunas, seguidos do sinal CAS, sem a necessidade de repetir o número da linha. O acesso à primeira posição de memória de um grupo é feito pelo mesmo mecanismo 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 coluna 3) Chipset envia à DRAM, o endereço da linha 4) Chipset envia à DRAM o sinal RAS 5) Chipset envia à DRAM o endereço da coluna 6) Chipset envia à DRAM o sinal CAS 7) A DRAM acessa o dado armazenado nesta célula e o entrega ao chipset 8) 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 coluna 6) Chipset envia à DRAM o sinal CAS 7) A DRAM acessa o dado armazenado nesta célula e o entrega ao chipset 8) 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, o tempo 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 o primeiro acesso, e depois 40 ns para cada um dos acessos seguintes. É mais ou 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. A duração de um ciclo de clock depende do clock utilizado pelo chipset, que em geral é o mesmo clock externo do processador: Clock 33 MHz 40 MHz 50 MHz 60 MHz 66 MHz 75 MHz 83 MHz Período 30 ns 25 ns 20 ns 16,6 ns 15 ns 13,3 ns 12 ns Clock 95 MHz 100 MHz 133 MHz 166 MHz 200 MHz 266 MHz 400 MHz Período 10,5 ns 10 ns 7,5 ns 6 ns 5 ns 3,75 ns 2,5 ns De um modo geral, para obter o valor do período, dado em ns, basta dividir 1000 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 as suas 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 a temporização 100/40/40/40, será controlada pelo chipset com a temporização 7-3-3-3. São 7x15 = 105 ns para o primeiro acesso e 3x15 = 45 ns para cada um dos acessos seguintes. Os processadores modernos, bem como seus chipsets, são orientados para fazer transferências em blocos de 4 acessos consecutivos. Entretanto as memórias FPM podem realizar várias transferências consecutivas em Fast Page Mode, desde que todas elas dentro da mesma linha. Em um caso extremo, considerando uma matriz de 1024x1024, podemos dar início à leitura da primeira coluna de uma linha, e ler todas as 1023 células consecutivas desta mesma linha. Processadores e chipsets fazem por padrão leituras de 4 células consecutivas, mas outros dispositivos podem tirar melhor proveito lendo um número maior de células. Por exemplo, uma placa de vídeo ao usar memórias FPM, pode fazer corresponder cada linha do vídeo a uma linha da DRAM, e usar transferências em Fast Page Mode para enviar os 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ências consecutivas pode variar, desde que dentro da mesma linha. O tempo de acesso da memória, acrescido de um intervalo inicial para a prepareção do endereço da linha, é o tempo total que é preciso esperar até que o primeiro dado seja acessado. A partir daí, mantendo a linha RAS ativada, alteramos o endereço da coluna e aplicamos pulsos em CAS. O intervalo entre a chegada de dois dados consecutivos será TPC, que é um tempo bem menor que o tempo de acesso da memória. Quando o RAS é desativado, termina a transferência em Fast Page Mode. Figura 11.34 Informações do manual de um chip de FPM DRAM. Capítulo 11 - Memórias 11-33 Nos manuais dos chips de memória existem todas as informações sobre a sua temporização. A figura 34 mostra a tabela extraída do manual de um certo chip de FPM DRAM. Este chip é oferecido em duas versões: -5 e –6, o que corresponde a tempos de acesso (tRAC) de 50 e 60 ns, respectivamente. Encontramos outras informações, como o tRC, que é o tempo total dos ciclos de leitura. Note que o tempo total do ciclo é bem maior que o tempo de acesso, 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 tempo de 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 para enviá-los ao processador ou à cache. O chipset deve ser ajustado de acordo com a velocidade da DRAM em uso. Este ajuste é feito através do CMOS Setup, e normalmente aparece com nomes como “DRAM Read Cycle” e “DRAM Write Cycle”. Digamos que a placa de CPU em uso opere com clock externo de 66 MHz, o que corresponde a ciclos de 15 ns. Digamos que estejamos usando memórias FPM DRAM com as seguintes características: tRAC = 70 ns tPC = 40 ns Como o período de clock é de 15 ns, são necessários 5 ciclos (75 ns) para englobar o tempo de acesso, e 3 ciclos (45 ns) para englobar tPC. Ciclos adicionais são necessários no início do primeiro acesso, pois como vimos, o tempo de acesso é contado a partir da ativação do RAS, mas o ciclo de leitura começa antes disso. Se reservarmos 2 ciclos iniciais para o início da transferência, o primeiro acesso seria feito após 7 ciclos. A memória estaria operando portanto com a temporização 7-3-3-3. Com memórias um pouco mais rápidas, de 60 ou 50 ns, pode ser possível utilizar menos ciclos, e operar com temporizações como 6-3-3-3, 7-2-2-2 ou 6-2-2-2. Tudo depende de serem reduzidos 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 usa uma configuração padrão com valores grandes, para que a placa funcione com memórias de várias velocidades. Ao utilizar memorias mais rápidas, tempos menores podem ser usados, mas o ajuste é feito manualmente e experimentalmente no CMOS Setup, em um processo de “envenenamento”. 11-34 Hardware Total Quanto ao encapsulamento, a maioria das memórias FPM DRAM, assim como a EDO DRAM e outras mais modernas, apresentam em geral os formatos SOJ e TSOP, mostrados na figura 35 e já apresentados no início deste capítulo. O número de pinos dependerá da capacidade, do número de bits de dados e dos bits de endereços. Observe na figura 35 que os pinos representam o barramento de dados (DQ), de endereços (A0, A1, etc.) e os sinais de controle, como RAS, CAS, OE, WE, etc. Existem ainda os pinos de alimentação (VCC) e terra (VSS ou GND). Figura 11.35 Chips de memória com encapsulamentos SOJ 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 FPM DRAM. A idéia é bastante simples. Após completar um ciclo de leitura e fornecer os dados lidos, pode dar início a um novo ciclo de leitura, mas mantendo em suas saídas, os dados da leitura anterior. O resultado é uma economia de tempo, o que equivale a um aumento de velocidade. É suportada por todas as placas de CPU Pentium, a partir das que apresentam o chipset i430FX. As primeiras placas de CPU Pentium II também as suportavam, porém essas memórias caíram em desuso, sendo logo substituídas pela SDRAM tão logo o Pentium II se tornou comum (1998). Módulos de memória EDO DRAM utilizaram muito o encapsulamento SIMM/72 (assim como a FPM DRAM). Também é possível encontrar mó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 do sinal 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 em uma memória FPM, mas a sua vantagem aparece nos acessos seguintes, como ocorre nas transferências em Page Mode. A figura 36 mostra a diferença entre uma memória FPM e uma EDO, ambas operando em Page Mode. Nas memórais FPM, a descida do CAS ativa o dado, enquanto a sua subida o desativa. Portanto, antes de fornecer a próxima coluna, é preciso dar 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óxima leitura. Nas memórias EDO, a subida do CAS não desativa o dado. Desta forma pode ser dado início ao fornecimento da próxima coluna, ao mesmo tempo em que o dado está presente no seu barramento. Somente quando o CAS é novamente ativado é que o dado é desativado. De certa forma, a EDO DRAM faz dois trabalhos em paralelo. Mantém os dados nas suas saídas enquanto recebe o número da próxima coluna para acesso. Pelo fato de estender o tempo durante o qual os dados ficam ativos, essas memórias recebem o nome de Extended Data Out (EDO). O ganho de velocidade não é excepcional, mas muito bem vindo. Se uma FPM DRAM opera com a temporização 7-3-3-3, a EDO DRAM com células idênticas opera com 7-2-2-2. Melhor ainda, como o último dado lido em um ciclo fica disponível por mais tempo, o próximo ciclo também pode começar mais cedo, portanto o período de 7 ciclos para o primeiro acesso pode ser reduzido para 6 ciclos, resultando na temporização 6-2-2-2. Neste caso é um ganho de desempenho de 33% em relação à FPM DRAM. Nas placas de CPU 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 placas de CPU Pentium com barramento externo de 50, 60 e 66 MHz. Alguns modelos mais velozes podiam operar com barramentos de 75 e 83 MHz em placas para processadores Cyrix 6x86, mas muitas vezes o funcionamento era instá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 o encapsulamento SIMM de 72 vias. Entretanto, SIMM/72 não é sinônimo de EDO DRAM, já que podemos encontrar também módulos SIMM/72 com memó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 geral suportavam também memórias FPM, o que possibilitou uma transição tranqü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 bancos diferentes. 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, em intervalos de alguns milisegundos, para que não percam seus dados. Ler todas as células de um chip de DRAM seria uma operação bastante demorada, mas felizmente essas leituras não precisam ser feitas célula por célula, e sim, linha por linha. É fácil entender porque quando analisamos o mecanismo 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. Uma leitura nesta célula servirá para fazer o seu refresh, mas para tornar a operação de refresh mais eficiente, os circuitos que controlam a matriz fazem a leitura simultânea de todas as células da linha selecionada. Todas são lidas ao 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 de dados, apenas o valor da célula desejada. Fazer o refresh em toda a matriz de células consiste em acessar seqü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 de refresh, mas o tradicional RAS Only sempre é suportado. Outro método oferecido nas memórias modernas é o CBR (CAS-Before-RAS). Consiste em aplicar 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 contator interno (Refresh Counter). O cliclo de refresh pelo método CBR, além de ser mais 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 todos os chips de DRAM oferecem este recurso. Outro recurso ainda melhor oferecido em modelos mais novos de FPM DRAM e EDO DRAM, e presente em todas as memórias mais novas (SDRAM, DDR e RDRAM) é o Self Refresh. Essas memórias possuem um contador interno para endereçar seqüencialmente todas as suas linhas, bem como circuitos que realizam o refresh dessas linhas. Desta forma o controlador 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 do período de refresh (tREF, refresh period). Seu valor é dado em milésimos de segundo. É o tempo máximo que as células podem suportar de forma segura, sem perder os dados. A cada período de refresh, todas as linhas da memó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, usavam memórias DRAM modelo 4116. Essas memórias tinham a organização de 16k x 1, portanto 8 delas formavam um banco de 16 kB, e 4 bancos formavam 64 kB. Elas tinham um período de refresh de 2 ms, ou seja, a cada 2 milésimos de segundo, todas as suas linhas tinham que ser lidas. A matriz de 16k células tem 128 linhas e 128 colunas (128 x 128 = 16.384). Portanto a cada 2 milésimos de segundo tinham que ser feitas 128 operações de refresh. O intervalo entre duas operações de refresh consecutivas deveria ser portanto de: 2 ms  128 = 15,625 s Como o IBM PC não tinha um controlador de refresh específico, era utilizado o canal 0 do controlador de DMA (8237A DMA Controller) para realizar leituras repetitivas, fazendo assim o refresh. Pulsos de clock a cada 15,625 s eram gerados pelo chip 8253 (programmable interval timer), que també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, mas seu período de refresh também era maior, com 4 ms. Desta forma os pulsos de refresh a cada 15,625 s eram suficientes para o correto funcionamento das memórias. Nas placas de CPU atuais, o refresh não é mais feito por DMA, apesar dos seus 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 novos de FPM DRAM e EDO DRAM eram oferecidos em versões com e sem self refresh. 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 chamada pseudo static RAM. Essas memórias, além de fazerem o refresh, possuem também circuitos internos que desmembram o endereço em linha e coluna, e geram os sinais RAS e CAS. Externamente esses chips possuem sinais de dados, endereços, chip enable (CE), write enable (WE) e output enable (OE). Para todos os efeitos, comportam-se como RAMs estáticas. Note que as atuais memórias DRAM fazem refresh interno mas seus sinais de controle são típicos de memórias dinâmicas, dados, endereços divididos em linha e coluna, 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 da DRAM. É uma grande injustiça, pois o tempo perdido com o refresh não chega a comprometer o desempenho do computador. No IBM PC e no PC XT, as leituras da memória duravam cerca de 0,8 s, e ocorriam a cada 15,625 s. Essas leituras ocupavam portanto apenas 5% do tempo total da memória, uma degradação bem pequena. Em um Pentium-200, com barramento externo de 66 MHz, uma leitura de refresh demora cerca de 0,1 s, o que ocupa menos de 1% do tempo total, uma queda de desempenho imperceptível. Também menor que 1% é a porção total do tempo que uma DRAM moderna ocupa com o refresh. É portanto um erro técnico, e também uma injustiça, afirmar que a DRAM é lenta porque necessita de refresh. A lentidão da DRAM é resultado de sua natureza capacitiva. Nas operações de escrita, os capacitores precisam ser carregados ou descarregados para armazenar os bits. As leituras, como já apresentamos, provocam alteração na carga do capacitor selecionado, que precisa ser posteriormente carregado. As cargas e descargas não são instantâneas, mas têm uma duração que depende do valor do capacitor e da resistência elétrica percorrida pela corrente. As RAMs estáticas podem operar de forma muito mais rápida porque não precisam carregar e descarregar capacitores. Basta ligar os transistores e os dados são recebidos ou armazenados de forma muito mais rápida que nas DRAMs. 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. Esta desvantagem é compensada com o uso de memória cache. 11-40 SRAM * Rápida Baixa densidade Alto custo Alto consumo Hardware Total DRAM Lenta * Alta densidade * Baixo custo * Baixo consumo A lentidão da DRAM, como já explicamos, é resultado da sua natureza capacitiva. A alta densidade da DRAM é devida ao fato das suas células serem mais simples. Note que apesar dos diagramas mostrarem a matriz de células em pequeno tamanho em comparação com outros módulos, esta matriz ocupa a maior parte da área do chip. Uma célula de DRAM tem apenas um transistor e um pequeno capacitor. Uma célula de SRAM tem 6 transitores, ou então 4 transistores e 2 resistores. Portanto as células de DRAM são de 3 a 4 vezes menores que as células de SRAM, ou seja, a DRAM é mais densa, permite a construção de maior número de células por unidade de área. A mesma tecnologia que permite produzir chips de SRAM com 1 MB pode permitir produzir chips de DRAM com 4 MB. Também como conseqüência das células da DRAM serem mais simples, seu custo é menor. Lembre-se que os chips são produzidos em pastilhas circulares de silício chamadas waffers). Quanto mais chips puderem ser produzidos em cada waffer, menor será o custo de cada chip. Além disso o processo de produção da DRAM é mais simples, pois utiliza menos camadas que a SRAM. Finalmente, o consumo de cada célula de DRAM é bem menor que das células de SRAM. A maior parte da energia elétrica de um chip é consumida quando 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 na cé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 mesmo que consumindo baixa corrente. Na DRAM, as células em repouso ficam com seus transitores cortados, sem consumir energia. Apanas para exemplificar a diferença de consumo entre a SRAM e a DRAM, considere os chips MT58L64L32P (SRAM, 256 kB) e MT48LC16M8 (DRAM, 4 MB), ambos produzidos pela Micron Tecnhology utilizando tecnologias de fabricação semelhantes, ambos operando a 100 MHz. Compare o consumo dos dois chips: Chip SRAM MT58L64L32P Capacidade Tensão 256 kB 3,3 V Corrente 225 mA Consumo Consumo por MB 0,75 W 3 W/MB Capítulo 11 - Memórias DRAM MT48LC16M8 11-41 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 por cada MB de memória, permite produzir memórias DRAM com consumo de 0,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órias FPM e EDO. Se o módulo for do tipo SIMM/30 ou SIPP/30, é obviamente do tipo FPM, pois quando as memórias EDO chegaram ao mercado, os módulos de 30 vias já haviam caído em desuso. A confusão ocorre basicamente com módulos SIMM/72 produzidos entre 1994 e 1997, comuns em placas de CPU 386, 486 e nas primeiras placas de CPU Pentium. Placas de CPU 386 não funcionavam com memórias EDO, e placas de CPU 486 também normalmente não, mas existem alguns modelos que suportam tanto FPM quanto EDO. Já as primeiras placas de CPU Pentium com soquetes SIMM/72 suportavam tanto memórias FPM quanto EDO. O BIOS dessas placas era capaz de detectar o tipo de memória instalado em cada banco e configura o chipset para acessos de acordo com o tipo detectado. Figura 11.39 Alguns módulos apresentavam uma etiqueta “EDO”. Alguns módulos de EDO DRAM apresentam uma etiqueta indicadora “EDO”, como na figura 39. Este é um indício para diferenciar memórias EDO das memórias FPM, mas não nos deixa livres de falsificações, já que qualquer revendedor inescrupuloso pode produzir etiquetas falsas. Felizmente esta falsificação não é comum, já que as memórias EDO e FPM têm preços similares. 11-42 Hardware Total Em alguns casos é possível diferenciar entre FPM e EDO de acordo com a numeração dos chips. Muitos fabricantes usarm para os chips FPM DRAM, números terminandos com 0, enquanto os chips EDO têm seus números terminados com 5. A tabela abaixo mostra os principais fabricantes e os sufixos utilizados para cada tipo de DRAM: Fabricante Inscrições Chips nos Sigla Exemplos OKI MSM MD MSM51V17400B MSM51V17405D Diferença entre FPM e EDO FPM termina com 0 EDO termina com 5 ou 8 Samsung KM KM48V8100C KM48V8104B FPM termina com 0 ou 3 EDO termina com 4 ou 5 Texas Instruments TMS TMS417400A TMS416409A FPM termina com 0 EDO termina com 9 Fujitsu MB MB8118160A MB8118165A Mitsubishi M5M LG Electronics GM M5M417800D M5M4V17405C GM71V65160C GM71V65163C FPM termina com 0 EDO termina com 5 FPM termina com 0 EDO termina com 5 FPM termina com 0 EDO termina com 3 Hyundai HY HY51V17800B HY51V17804B FPM termina com 0 EDO termina com 4 Siemens HYB IBM IBM HYB3166160AJ HYB3164165AJ IBM01164DOT3E IBM0116165BJ3E FPM termina com 0 EDO termina com 5 FPM termina com 0 EDO termina com 5 Micron MT MT4C1M16C3DJ MT4LC1M16E5DJ Motorola MCM MCM218160B MCM218165B Normalmente o 4º dígito antes do “-“ é “E” nas memórias EDO. FPM termina com 0 EDO termina com 5 NEC NEC 4265160G5 4264165G5 FPM termina com 0 EDO termina com 5 NPNX NN Panasonic MN Toshiba TC NN51V17800BJ NN51V17805BJ MN41V18160ASJ MN41V18165ASJ TC5118180BJ TC5165165AJ FPM termina com 0 EDO termina com 5 FPM termina com 0 EDO termina com 5 FPM termina com 0 EDO termina com 5 Capítulo 11 - Memórias Hitachi 11-43 HM HM5165160A HM5164165A FPM termina com 0 EDO termina com 5 Note que os números citados, como 0 e 5 na maioria dos casos, são em geral seguidos de letras. Essas letras são códigos dos fabricantes, e podem indicar o 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 e 1997, apresentam em geral o encapsulamento SIMM/72, e são utilizadas aos pares. O tempo de acesso dessas memórias é medido em ns (nanosegundos). Em geral os tempos de acesso são de 50, 60, 70 e 80 ns, sendo que as de 60 e 70 ns são as mais comuns. Os fabricantes utilizam ao lado do número de cada chip, um indicador de tempo de acesso. Por exemplo, 60 ns pode ser indicado como –60, 06, -06 ou similar. A figura 39 mostra chips de um 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 80 ns 70 ns 60 ns 50 ns Marcações -80, -8, -08, -X8 -70, -7, -07, -X7 -60, -6, -06, -X6 -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 e EDO, encontradas em módulos SIMM/72 (e também em SIMM/30). Memórias SDRAM possuem marcações parecidas, mas os significados são outros. 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 é um módulo SIMM/72, então certamente é FPM ou EDO. Se o módulo é do tipo DIMM/168, então provavelmente trata-se de uma SDRAM, mas existem alguns raros casos de memórias FPM e EDO que usam o encapsulamento DIMM/168. EDO com encapsulamento DIMM/168 São bastante raras, mas existem algumas memórias EDO DRAM com encapsulamento DIMM/168, apesar deste encapsulamento ser mais usado 11-44 Hardware Total pela SDRAM. É fácil esclarecer a dúvida, basta procurar pelo chip de EEPROM SPD (apresentado mais adiante neste capítulo). Módulos de SDRAM possuem este chip, enquanto os raros módulos EDO DRAM com encapsulamento DIMM/168 não o possuem. DRAMs síncronas Com placas de CPU operando com barramentos mais velozes que 66 MHz, tornou-se necessário adotar novas tecnologias para acelerar a velocidade das DRAMs, 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ções consecutivas de memória poderem ser acessadas de forma mais rápida, já que todas compartilham a mesma linha na matriz de células. Sem a necessidade de selecionar novamente a linha, bastava selecionar as colunas, o que cortava o tempo de acesso praticamente pela metade para células consecutivas. Memórias de 60 ns podiam então enviar dados em intervalos de 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 barramentos de 133 MHz a cada 7,5 ns. O uso do page mode não é suficiente para entregar dados nesta velocidade. Foi então que surgiram as DRAMs síncronas (Synchronous DRAM, ou SDRAM), ideais para barramentos de 66 a 133 MHz, e alguns modelos chegando a 166 MHz. Para barramentos mais velozes, como 200, 266 e até 400 MHz, foram criadas novas versões ainda mais velozes, como a DDR SDRAM (Double Data Rate SDRAM) e a RDRAM (Rambus DRAM). SDRAM Esta é a DRAM síncrona (Synchronous DRAM), muito utilizada nas placas de CPU produzidas entre 1997 e 2001. A principal diferença em relação às DRAMs dos tipos EDO e FPM é que seu funcionamento é sincronizado com o do chipset (e normalmente também com o processador), através de um clock. Por exemplo, em um processador com clock externo de 133 MHz, o chipset também opera a 133 MHz, assim como a SDRAM. Existem exceções, como processadores Athlon com clock externo de 200 MHz mas com 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 placas de CPU produzidas a partir de meados de 1997, e seus módulos usam o encapsulamento 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 DRAM comum, 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 realiza suas 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 único ciclo. 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ória independentes. Quando são acessadas, as células de mesmos endereços em cada um dos 4 bancos internos do chip são acessadas. Terminado o primeiro acesso (digamos que este primeiro acesso demore 5 ciclos, portanto a memória estaria operando com a temporização 5-1-1-1), o dado do primeiro banco poderá ser transmitido ao chipset e ao processador, e os três dados dos outros três bancos poderão ser transmitidos imediatamente depois, sem ter que esperar pelo seu tempo de acesso tradicional. A demora está em chegar aos dados desejados. Uma vez acessados, podem ser rapidamente transmitidos. Portanto, 4 circuitos lentos operando em conjunto, apresentam o mesmo resultado de um circuito rápido. *** 100% *** Figura 11.40 Diagrama de um chip 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 circuitos para selecionamento de linha e coluna e sense amplifiers. As 4 matrizes são acessadas ao mesmo tempo, portanto uma vez que tenha sido feito o primeiro (e mais demorado) acesso, os dados seguintes são transferidos mais rapidamente, pois já foram acessados da segunda, terceira e quarta matriz. Bastará apenas transferir os dados seqüencialmente, operação que pode ser feita em alta velocidade. 11-46 Hardware Total Se a idéia parece complicada, façamos uma comparação bem simples. Vá a uma loja de suprimentos de informática e peça um cartucho de tinta preta para a sua impressora. Quando o vendedor trouxer o cartucho, peça um com tinta amarela. Quando trouxer o segundo cartucho, peça um de tinta cyan, por último um de tinta magenta. Digamos que o vendedor tenha demorado 20 segundos para buscar cada cartucho. Como os cartuchos de todas as cores estão todos na mesma prateleira, seria mais rápido pedir os quatro ao mesmo tempo. O vendedor demoraria os mesmos 20 segundos para chegar ao primeiro cartucho, mas imediatamente poderia pegar os outros três (já “acessados”), economizando bastante tempo. Observe no diagrama da figura 40 que existe um bloco chamado Refresh Counter. 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 precisa mais enviar comandos de refresh para os chips. Como vemos, a SDRAM não é um tipo de memória que usa uma nova tecnologia de fabricação extremamente mais veloz. Apenas usa uma nova forma de organizar as células de memória fazendo acessos simultâneos, para que a transferência dos dados seja mais rápida. Truques semelhantes são utilizados por memórias mais avançadas, como a DDR SDRAM e a RDRAM, como veremos mais adiante. Assim como as DRAMs convencionais, FPM e EDO, a SDRAM também utiliza sinais de controle RAS, CAS, WE (Write Enable) e CS (Chip Select), porém seu uso é diferente. As DRAMs anteriores à SDRAM são classificadas como 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 instantes têm liberdade para variar de acordo com o projeto. Já na SDRAM, esses sinais de controle são sincronizados a partir de um clock. No início de cada ciclo de acesso os sinais de controle já devem estar definidos de acordo com o 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. Nos comandos de escrita devemos ter CS=0, WE=0, RAS=0 e CAS=0. De acordo com a combinação formada pelos sinais CS, RAS, CAS, WE e DQM, temos diversos comandos possíveis. A tabela da figura 41 mostra os comandos de um 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 ou 1. Note que as transferências da SDRAM são feitas por padrão no modo burst. Para finalizar a transferência é preciso enviar ao chip um comando burst 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 no instante da subida do sinal de clock (CLK). A figura 42 mostra a temporização do comando de leitura, que de acordo com a tabela da figura 41, é 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 sua matriz que resulta em mais um significativo aumento de desempenho, utilizando a natureza seqüencial dos acesso à memória. Um chip de memória RAM é projetado para permitir acessos seguidos em posições aleatórias, mas na 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 que logo a seguir seja acessada a posição seguinte, ou uma outra posição próxima. Possições próximas correspondem a células localizadas na mesma linha. Se pudéssemos anotar os valores de linha e coluna acessados em uma memória típica, veríamos que o número da coluna varia continuamente, mas o número da linha é muito repetido. É portanto uma perda de tempo enviar várias vezes o endereço da linha (acompanhado do sinal RAS). A SDRAM aproveita esta natureza seqüencial da seguinte forma: utiliza um comando chamado ACTIVE (CS=0, RAS=0, CAS=1 e WE=1) apenas para especificar o número da linha desejada na matriz de células. A seguir podem ser usados comandos de leitura e escrita na linha já selecionada, bastando especificar apenas o número da coluna. Portanto, enquanto nas DRAMs convencionais, FPM e EDO precisamos especificar linha-coluna-linha-coluna- 11-48 Hardware Total linha-coluna-linha-coluna, na SRAM especificamos linha-coluna-colunacoluna. Apenas quando é necessário acessar uma outra linha é usado um novo comando ACTIVE. Isto não é uma novidade tecnológica, e sim um aperfeiçoamento de engenharia. Lembre-se que as memórias FPM e EDO també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 de linha. No instante em que sobre o clock, o barramento de endereços da memória deve ter recebido o endereço da linha desejada. Depois de um tempo tRCD especificado pelo fabricante (varia de acordo com o chip de memória), pode ser utilizado um comando de leitura e escrita. O tempo tRCD é dado em nanossegundos, mas o tempo de espera deve ser definido em número de clocks. Por exemplo, se em uma SDRAM operando a 133 MHz (período de 7,5 ns) tivermos tRCD=20 ns, serão necessários 3 períodos de clock (3 x 7,5 ns = 22,5 ns) para que tRCD seja transcorrido. Nos ciclos de 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 de memória que deseja acessar. Cabe ao chipset (no qual está o controlador de memória) decidir o instante correto de enviar um comando ACTIVE quando é acessada uma linha diferente da atual. Como vimos na figura 43, terminado o número de ciclos suficiente para transcorrer tRCD, podemos utilizar comandos de leitura e escrita. A figura 44 mostra 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 CAS igual a 2. No instante em que sobe o clock (T0) deve ser indicado o endereço da coluna e usado o comando de leitura (CS=0, RAS=1, CAS=0 e WE=1). A partir daí transcorrerá um certo número de ciclos até que os dados sejam fornecidos no barramento de dados (DQ). O número de ciclos transcorrido é um parâmetro muito importante, chamado latência do CAS (CL). Em geral as memórias trabalham com CL=2 ou CL=3. Na figura 44 temos CL=2. Os fabricantes de memórias especificam os valores de CL que podem ser usados com seus chips, em função da freqüência utilizada. A tabela abaixo mostra os valores de CL que podem ser usados com cada clock, no chip MT48L32M4A2, produzido nas versões de 7, 7.5 e 8 ns. É interessante operar com CL=2, já que resulta em desempenho melhor que o obtido com CL=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 outras versões operando a 100 MHz). Velocidade -7 -75 -8 CL=2 Até 133 MHz Até 100 MHz Até 100 MHz CL=3 Até 143 MHz Até 133 MHz Até 125 MHz O valor de CL pode ser ajustado pelo CMOS Setup, de forma manual ou então de forma automática. Para usar o ajuste automático basta programar o item 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ísticas da 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 a figura 45. Estando o endereço da linha previamente selecionado através do comando ACTIVE e transcorrido tRCD, pode ser usado o comando de leitura, com o fornecimento do endereço da coluna desejada. Transcorrido o período de latência do CAS (no exemplo da figura 45, CL=2), começam a ser enviados seqüencialmente os dados a partir da coluna especificada. A menos que seja usado um comando BURST TERMINATE, os dados das células seguintes serão automaticamente fornecidos. Ao contrário da EDO DRAM e da FPM DRAM quando operam em page mode, não é necessário fornecer os endereços das colunas. O barramento de endereços é ignorado, e comandos NOP devem ser fornecidos à memória a cada ciclo. Note que durante uma transferência em modo burst, é permitido especificar o endereç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 podem operar em modo burst com células aleatórias dentro de uma mesma linha, e não necessariamente consecutivas. Para isso basta usar vários comandos READ 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ço tecnológico permitiu de uma hora para outra, passar de memórias EDO com 60 ns de tempo de acesso, para memórais SDRAM com 10 ns de período de clock? Não existe avanço tecnológico algum, e sim uma reengenharia na forma como as memórais são construídas, utilizando o mesmo tipo de matriz de células. Para acessar uma SDRAM é preciso usar antes o comando ACTIVE, que em geral tem duração de 2 ou 3 ciclos. Só a partir daí podem ser usadas leituras e escritas. A leitura, a operação predominante, só fornece os dados após transcorrida a latência do CAS, que também dura mais 2 ou 3 ciclos. Portanto até a chegada do primeiro dado transcorrem entre 4 e 6 ciclos. Memórias de clock elevado (-10 ns, por exemplo) ao operarem com clocks baixos podem usar latências menores. Em 66 MHz, 4 ciclos correspondem 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) verificados nas velhas memórias EDO e FPM. A vantagem da SDRAM aparece nas transferências seguintes, quando o chip entra no modo burst. Sem dúvida a SDRAM é uma excelente idéia, uma forma de conseguir velocidades bem mais altas usando matrizes de células relativamente lentas. Artifícios semelhantes permitiram a criação da DDR SDRAM e da RDRAM, com velocidades 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 as temporizações das várias versões de SDRAM de vários fabricantes, algumas incompatibilidades passaram a ocorrer. Visando resolver esses problemas, a Intel criou os padrões PC66 e PC100. São normas que definem todos os parâmetros de tempo que as memórias deveriam obedecer para operar seguramente a 66 e a 100 MHz, o que acabou com os problemas de compatibilidade. Os módulos de 100 MHz já existentes no mercado não atendiam plenamente às especificações do padrão PC100, por isso esses módulos passaram a ser designados como PC66. Já os módulos de 125 MHz existentes tinham temporizações compatíveis com o PC100, e passaram a ser assim designados. Portanto um módulo com marcação de 10 ns ou 100 MHz é PC66. Pode ser usado com barramentos externos de 66 MHz, e provavelmente também a 75 ou 83 MHz, mas não a 100 MHz. Os módulos com marcação de 8 ns ou 125 MHz são classificados como PC100. Os primeiros módulos para 133 MHz já foram criados obedecendo ao padrão PC133, portanto podem ser seguramente usados em barramentos de 133 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 com o seu clock, ou de acordo com o tempo de acesso. Ambas as classificações são equivalentes. Por exemplo, um clock de 125 MHz resulta em um período de 8 ns, portanto o fabricante pode utilizar qualquer um dos indicadores para a velocidade: -125 ou –8, o que significa 125 MHz e 8 ns, respectivamente. A tabela abaixo mostra a correspondência entre os clocks e os tempos de acesso. Clock 66 MHz 83 MHz Ciclo 15 ns 12 ns 11-52 100 MHz 125 MHz 133 MHz 143 MHz 166 MHz Hardware Total 10 ns 8 ns 7,5 ns 7 ns 6 ns Ocorre que, na prática, nem sempre os clocks máximos indicados pelos fabricantes 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 longo tempo necessário para enviar o primeiro dado. As primeiras memórias SDRAM (não existiam na época os padrões PC66 e PC100) operavam com temporizações como 7-1-1-1, 6-1-1-1 e 5-1-1-1, ou seja, precisavam de um tempo mais longo para encontrar o primeiro dado de um grupo, depois enviavam os dados seguintes na sua velocidade máxima, com um dado a cada ciclo de clock. As memórias atuais são ainda mais rápidas, e podem operar nos modos 3-1-1-1 e 2-1-1-1. Esses modos são diferenciados por um parâmetro chamado CAS Latency, e está relacionado ao tempo transcorrido entre 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 usando CL=3, mas nem todas podem operar com CL=2. Um módulo de memória com marcação –75 (133 MHz) pode conseguir operar a 133 MHz usando CL=3, mas pode não conseguir operar com CL=2, sendo necessário utilizá-lo com clocks mais baixos. Tome por exemplo as informações apresentadas pela Mícron sobre seus chips com ciclos de 7 e 7,5 ns: Marcação Ao usar o clock -75 -75 -75 -7 -7 66 MHz 100 MHz 133 MHz 133 MHz 143 MHz Precisa de Latência do CAS de... 2 2 3 2 3 Classificação PC66 PC100 PC133 PC133 O chip de marcação –75 opera com ciclos de 7,5 ns, ou 133 MHz. Esta memória pode ser instalada em placas que exijam o funcionamento externo a 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 requisitos dos padrões PC66 e PC100. Para operar em placas com clock externo de 133 MHz, 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 a temporizaçã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 ainda com 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 modo geral, 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ção Advanced 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 um pequeno “envenenamento”, utilizando memórias mais rápidas que o necessário e programando CL=2. A configuração mais segura entretanto é utilizar o SPD (Serial Presence Detect). Esta identificação das memórias SDRAM informa ao BIOS os seus parâmetros temporais, e assim pode ser feita automaticamente a programação do CL e outros parâmetros de modo a obter o melhor desempenho e com segurança. De um modo geral, memórias SDRAM de 10 ns (100 MHz) podem operar a 66 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ão PC100) e CL=2, mas alguns chips requerem CL=3. Memórias de 7.5 ns (133 MHz) em geral funcionam a 133 MHz (PC133) com CL=3. Para utilizar 133 MHz 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 abaixo como referência: Memórias de.... 166 MHz (6 ns) 143 MHz (7 ns) 133 MHz (7,5 ns) 125 MHz (8 ns) 100 MHz (10 ns) Podem operar com... 133 MHz 100 MHz 66 MHz 133 MHz 100 MHz 66 MHz 133 MHz 100 MHz 66 MHz 100 MHz 66 MHz 100 MHz 66 MHz Usando CL CL=2 CL=2 CL=2 CL=2 CL=2 CL=2 CL=3 CL=2 CL=2 CL=2 CL=2 CL=3 CL=2 Note que esta tabela tem a intenção de ajudar, mas dependendo do chip de memória utilizado, pode ser necessário usar CL=3 em situações nas quais a tabela 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% *** Figura 11.46 Acessos de leitura com CL=1, CL=2 e CL=3. para memórias Micro MT48LC1M16A1 A figura 46 mostra as operações de leitura em uma SDRAM modelo MT48LC1M16A1, produzida pela Micron, usando CL=1, CL=2 e CL=3. Os dados não devem ser generalizados para qualquer chip de SDRAM, são específicos para o chip citado. Na prática, CL=1 não é utilizado, pois as memórias SDRAM não podem operar com freqüências elevadas neste modo. Com CL=1, o dado (DQ) é acessado depois de apenas 1 ciclo de clock. Note na figura que com CL=1, o comando de leitura (READ) foi dado a 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 dois ciclos de clock, e com CL=3, pronto com 3 ciclos de clock. Memórias operando 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 a freqüência máxima que pode ser usada com CL=1, CL=2 e CL=3. A tabela mostra que usando CL=1, memórias –6 (166 MHz) podem operar no máximo a 50 MHz, memórias –7 (143 MHz) podem operar no máximo a 40 MHz, 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 mais confortável: 125 MHz, 100 MHz e 77 MHz, respectivamente. Apenas com CL=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és de uma única SDRAM, coloque duas iguais, lado a lado. Quando uma for acessada, 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 conjunto poderá entregar dois dados a cada pulso de clock. O resultado é uma taxa de transferência duas vezes maior. Agora, ao invés de utilizar dois chips SDRAM iguais, lado a lado, constrói-se um único chip com os circuitos equivalentes aos das duas SDRAMs, e adiciona-se a ele, os circuitos necessários para fazer a transmissão dupla a cada pulso de clock. O chip resultante é 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 e a DDR SDRAM. Os períodos de clock são representados por T0, T1, T2 e T3. A SDRAM fornece um dado a cada período de clock, e o instante da subida deste clock (transição de “0” para “1”) indica que o dado está pronto para ser lido. Na DDR SDRAM, utilizando períodos iguais, cada transição de subida ou de descida indica a presença de um dado pronto. Portanto são dois dados a cada clock. As memórias DDR SDRAM recebem nomes de acordo com o clock que trabalham, e também com a taxa de transferência. Por exemplo, uma DDR SDRAM que opera com 100 MHz realiza 200 milhões de transferências por segundo, portanto é chamada de DDR200. Como se tratam de transferências de 64 bits (8 bytes), os 200 milhões de transferências resultam em 1,6 bilhões de bytes por segundo. Aqui comete-se mais uma vez, uma imprecisão típica de 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 sobre taxas de transferência de memórias, um “mega” como sendo igual a um milhão, e 1 “giga” como sendo 1 bilhão. Portanto diríamos que a taxa de transferência de uma DDR200 é 1,6 GB/s. Devido a esta taxa, essas memórias também são chamadas de PC1600. A tabela que se segue mostra os diversos tipos de DDR, com seus clocks e suas taxas de transferência. 11-56 Tipo DDR200 ou PC1600 DDR266 ou PC2100 DDR300 ou PC2400 DDR333 ou PC2700 DDR400 ou PC3200 DDR800 ou PC6400 Hardware Total Clock 100 MHz 133 MHz 150 MHz 167 MHz 200 MHz 400 MHz Taxa de transferência 1,6 GB/s 2,1 GB/s 2,4 GB/s 2,7 GB/s 3,2 GB/s 6,4 GB/s OBS: Não confunda os termos PC66, PC100 e PC133, usados pela SDRAM, com os termos PC1600 e superiores, usados pela DDR SDRAM. Na DDR SDRAM, o número representa a taxa de transferência máxima, medida em MB/s, enquanto na SDRAM, o número indica a freqüência de operação. Uma SDRAM PC100, por exemplo, fornece 800 MB/s (já que trabalha com 64 bits = 8 bytes em cada acesso), portanto tem a metade do desempenho de uma 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 pelas memórias DDR SDRAM. Figura 11.48 Módulos DIMM/168 (SDRAM) e DIMM/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 por conta dos acessos às matrizes de células, que são feitas com um número de bits simultâneos duas vezes maior que na SDRAM. Capítulo 11 - Memórias 11-57 *** 100% *** Figura 11.49 Diagrama de um chip DDR SDRAM. A outra grande diferença está nos estágios de entrada e saída. Observe no exemplo da figura 50 que sempre chegam 8 bits da matriz de células. Circuitos multiplexadores selecionam ora o primeiro grupo de 4 bits, ora o segundo grupo de 4 bits. Data forma é feita a interface com um barramento de dados de 4 bits. Em todos os chips de DDR SDRAM, o número de bits que chegam das matrizes de células é duas vezes maior que o número de bits do seu barramento de dados. Figura 11.50 Para o chip DDR SDRAM fornecer 4 bits, a matriz de células tem que fornecer 8 bits. Chips de DDR SDRAM operam com dois sinais de clock (na figura 49 são CK e CK#). São clocks complementares, ou seja, quando um deles está em nível 1, o outro está em nível 0, e vice-versa. Os comandos da DDR SDRAM são semelhantes aos da SDRAM, e são sempre fornecidos na subida do clock CK. Note que apenas a taxa de dados é dobrada. Os comandos são enviados aos chips com taxa normal, ou seja, a taxa dos comandos não é dobrada. Isto pode ser visto claramente na figura 51, que mostra um comando de leitura em modo burst. 11-58 Hardware Total *** 75% *** Figura 11.51 Leitura de uma DDR SDRAM em modo burst. Memórias DDR SDRAM podem utilizar latências de CAS (CL) iguais a 2 ou 2,5. Significa que os dados estarão disponíveis 2 ciclos, ou então dois ciclos e meio após o envio do comando de leitura. Note que figura 51 que os comandos são dados sempre na subida do clock CK. Terminado o período de latência do CAS, os dados começam a ser enviados, tanto na subida de CK 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 novo comando de leitura, com a especificação de uma nova coluna. Um sinal DQS (data strobe) é usado para sincronizar os dados. Nas operações de leitura, o sinal DQS irá variar, e suas subidas e descidas indicarão os instantes em que os bits lidos estão disponiveis. Este sinal é usado pelo chipset para que possa receber os dados no momento correto. RDRAM A RDRAM utiliza um processo similar ao da SDRAM para aumentar a taxa de transferência. Como vimos, cada chip SDRAM possui no seu interior, quatro bancos que são acessados simultaneamente, e depois transferidos rapidamente para o chipset e para o processador. Nas memórias RDRAM, é usado um número ainda maior de bancos para obter uma taxa de transferência ainda mais elevada. São 16 ou 32 bancos, dependendo dos chips. As células de memória usadas nesses bancos, assim como ocorre nos demais tipos de DRAM apresentados aqui, não são muito diferentes das células usadas nas DRAMs convencionais, exceto pela sua voltagem e por uma pequena redução no tempo de acesso. Cada uma dessas células são tão lentas quanto as encontradas nas memórias FPM DRAM de 60 ns, por exemplo, usadas em meados dos anos 90. A grande diferença é que essas memórias modernas utilizam muitas células trabalhando em paralelo, visando obter mais bits de uma só vez, e assim transferi-los mais rapidamente para o processador. Um típico chip de memória RDRAM opera com dados de 16 bits. Também sã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 de erros, como mostraremos mais adiante neste capítulo. Para simplificar a discussão, consideremos apenas os chips de 16 bits. A maioria das DRAMs atuais operam com 300 ou 400 MHz. Alguns fabricantes oferecem freqüências intermediárias, como 333 ou 350 MHz. Também para simplificar nossa explicação, consideremos os chips de 400 MHz. Assim como a DDR SDRAM, a RDRAM também realiza duas transferências por cada ciclo de clock, portanto tudo se passa como se a operação fosse em 800 MHz. Esses 800 milhões de transferências por segundo, sendo cada uma de 16 bits (2 bytes), resultam na taxa de transferê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 dos processadores: Processador Pentium III Pentium III B Athlon Athlon Pentium 4 bits 64 64 64 64 64 clock 100 MHz 133 MHz 200 MHz 266 MHz 400 MHz Banda 800 MB/s 1,07 GB/s 1,6 GB/s 2,13 GB/s 3,2 GB/s Um único canal de memória RDRAM oferece uma taxa de transferência suficiente para atender à maioria dos processadores, exceto os mais avançados. O Pentium 4, por exemplo, com seu barramento de 400 MHz e 64 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 de RDRAM com 1,6 GB/s cada um, totalizando os 3,2 GB/s necessários. Um Athlon com barramento externo de 200 MHz poderia ser plenamente atendido por um canal RDRAM de 1,6 GB/s, mas o mesmo não ocorre com as novas versões, que usam o clock externo de 266 MHz. Seriam necessários dois canais de RDRAM, ou então o uso de uma RDRAM mais veloz, ou então utilizar RDRAMs de 532 MHz, ao invés dos modelos de 400 MHz. Na verdade não é o que ocorre. A AMD é uma das responsáveis pelo desenvolvimento da DDR SDRAM, e essas são as memórias usadas nas placas de CPU para os modelos mais avançados do Athlon. 11-60 Hardware Total Figura 11.52 O Pentium 4 operando com RDRAM necessita de dois canais. Os processadores modernos operam com 64 bits simultâneos, enquanto a RDRAM fornece apenas 16. Cabe ao chipset, que faz a ligação entre o processador e a memória, obter 4 grupos consecutivos de 16 bits vindos da RDRAM, formando os 64 bits exigidos pelo processador. Nas placas de CPU para Pentium 4, são dois canais de 16 bits, ambos a 800 MHz (lembre-se que sã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 bits e 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 da RDRAM. 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 da RDRAM 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ão transferidos 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 que fornece um número de bits simultâneos muito grande. A própria operação interna em 100 MHz (ciclos de 10 ns) também é uma dificuldade para as células de memória, que necessitam de no mínimo 60 ns para encontrar os dados. Este aumento é por sua vez feito pelo acesso simultâneo a um grande número de bits. Os bancos de células existentes no interior da DRAM operam na verdade com clock de 12,5 MHz (ciclo de 80 ns), mas fornecem 1024 bits (128 bytes) simultâneos. Note que 128 bytes x 12,5 MHz são exatamente 1,6 GB/s. Essas células de memória operam portanto em uma freqüência baixa, mas com um elevado número de bits simultâneos, que uma vez acessados, são transmitidos em altíssima velocidade, em grupos de 16. É muito difícil tecnologicamente, fazer as células de DRAM serem mais rápidas. Veja a evolução nos seus tempos de acesso ao longo das últimas décadas: Capítulo 11 - Memórias Ano 1980 1985 1990 1995 2000 Tempo de acesso 250 ns 150 ns 100 ns 60 ns 50 ns 11-61 Bits do barramento 8 bits 16 bits 32 bits 64 bits 64 bits Processador 5 MHz 12 MHz 25 MHz 100 MHz 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 compensar esta desigualdade, os processadores passaram a utilizar barramentos com mais 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 250 ns. Ainda assim este aumento de 40 vezes não aumentou tanto quanto o clock dos processadores. A situação é ainda pior quando consideramos que o aumento do desempenho dos processadores foi muito maior que o simples aumento de clock. Uma forma de solucionar o problema seria aumentar mais ainda a largura dos barramentos, passando a 128 ou 256 bits, mas isto tornaria os projetos de placas extremamente complexo devido ao grande número de trilhas de circuito. A solução mais simples e que foi realmente adotada, foi aumentar o número de bits do barramento interno das memórias. A RDRAM, por exemplo, busca 1024 bits simultâneos. Uma vez acessados, esses bits são transmitidos em alta velocidade, por um barramento externo 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 mais importante, e que ocupa a maior parte dos circuitos, são os bancos de DRAM 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íodo de 80 ns, enviando-os às saídas em grupos de 128 bits a cada 10 ns, que por sua vez são enviados para o barramento externo, em grupos de 16 bits a cada 1,25 ns. SPD – Serial Presence Detect Este é um recurso que possibilita ao BIOS identificar corretamente as características dos módulos de memória, e desta forma configurar o chipset para realizar o acesso da forma mais eficiente. Foi introduzido nos módulos de memória SDRAM e mantido nos módulos de DDR SDRAM e RDRAM. É implementado através de um minúsculo chip de memória EEPROM existente nos módulos, onde estão armazenadas todas as suas características. Normalmente este chip tem 8 terminais e fica localizado na parte direita do mó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, a quantidade de memória instalada. Vários parâmetros relacionados com a temporização de acesso às memórias deviam ser obrigatoriamente programados no BIOS. Como existem módulos com características bem diferentes, os BIOS precisavam utilizar temporizações longas, compatíveis com maior variedade de módulos, e desta forma o desempenho não era otimizado. O usuário mais experiente tinha que ajustar manualmente as temporizações, visando obter maior desempenho. Com as memórias atuais, suas características são corretamente detectadas através do SPD, e o BIOS pode programar o chipset para obter o máximo desempenho possível para as memórias instaladas. A seguir apresentamos alguns dos diversos parâmetros armazenados na EEPROM SPD: Capítulo 11 - Memórias 11-63 Alguns parâmetros armazenados Capacidade do módulo Número de bits Tempo de acesso Tipo da memória: SDRAM, DDR SDRAM, RDRAM Número de bancos Voltagem O conteúdo completo de uma EEPROM SPD pode ser lido com o programa HWINFO, obtido em www.hwinfo.com. Figura 11.55 Obtendo o conteúdo da SPD EEPROM com o programa HWINFO. Escolhendo a DDR SDRAM correta A DDR SDRAM é um produto bastante recente, começou a ser produzida em alta escala no ano 2000. Sendo um produto novo, maiores são as chances de ocorrerem incompatibilidades, já que nem sempre todos os fabricantes seguem 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. Existem duas categorias: 1) Registered 2) Unregistered ou Unbuffered. Os fabricantes de memórias normalmente produzem ambos os tipos. O segundo é mais barato e mais indicado para PCs comuns. O tipo registered é mais caro, mas tem a vantagem de poder ser instalado em maiores quantidades, sendo ideal para servidores. Cada módulo registered consome menos corrente nas suas entradas, portanto um mesmo chipset pode ser ligado a um número maior de módulos, o que resulta em maior quantidade de 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 do tipo registered. Placas de CPU que suportam memórias DDR possuem em geral um jumper para a indicação do tipo de DDR. É o caso da placa de CPU 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 e Unbuffered. A diferença está mostrada na figura 57. Ambos utilizam os chips de memória similares, mas o módulo Registered possui chips adicionais localizados entre o conector e os chips de memória. Esses chips são os chamados Registers (registradores). Figura 11.57 Módulos de DDR SDRAM DIMM/184 nas versões Unbuffered e Registered. OBS: A mesma regra é válida também para memórias SRAM. Os módulos SRAM registered possuem chips adicionais (registradores), como mostra a figura 57. Voltagem da DDR SDRAM Assim como as memórias SDRAM usadas na maioria dos PCs operam com 3,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. Existem diferenças no soquete e nos módulos, que impedem o uso de módulos de 1,8 volts em soquetes de 2,5 volts, e vice-versa. A diferença fica por conta do posicionamento do chanfro do soquete. A figura 58 mostra os chanfros para os atuais módulos de 2,5 volts (chanfro à esquerda) e para as futuras memórias de 1.8 volts (chanfro no centro). Existe ainda uma posição reservada para uso futuro (chanfro à direita), que poderá ser usada com um eventual novo padrão de voltagem. Figura 11.58 O chanfro indica a voltagem do módulo de memória DDR. Velocidade da DDR SDRAM O selecionamento da DDR SDRAM começa pelo seu clock, de acordo com o apresentado na tabela abaixo. Note que as denominações DDRxxx são adotadas principalmente pelos chips de memória, enquanto nomenclaturas como PCXXXX (PC1600, PC2100, etc.) são usadas para designar módulo. O correto portanto seria dizer, por exemplo, que “um módulo de DDR PC1600 utiliza chips DDR200”. Tipo DDR200 / PC1600 DDR266 / PC2100 DDR300 / PC2400 DDR333 / PC2700 DDR400 / PC3200 DDR800 / PC6400 Clock 100 MHz 133 MHz 150 MHz 167 MHz 200 MHz 400 MHz Taxa de transferência 1,6 GB/s 2,1 GB/s 2,4 GB/s 2,7 GB/s 3,2 GB/s 6,4 GB/s Como já explicamos para a SDRAM, diferentes módulos podem operar com latência do CAS com valores 2 ou 3 (CL=2 / CL=3). Duas memórias SDRAM PC133 podem operar com 133 MHz, porém uma com CL=2 e outra com CL=3. As memórias com menor ciclo têm maiores chances de operar com CL=2, o que resulta em melhor desempenho. Por exemplo, um certo módulo SDRAM com ciclo de 7 ns pode ser capaz de operar com 133 MHz e CL=2, enquanto outro de 7,5 ns pode operar com os mesmos 133 MHz, mas com CL=3. Memórias DDR SDRAM também podem utilizar diferentes latências do CAS. 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 chips classificados como DDR266A podem operar com CL=2, enquanto os do tipo DDR266B operam com CL=2,5. As placas de CPU que usam este tipo de memória podem ser configuradas de forma automática, na qual o CL é programado de acordo com as informações na EEPROM SPD (Serial Presence Detect), ou então manualmente. A figura 59 mostra esta opção no CMOS Setup de uma placa de CPU Gigabyte 7DX, equipada com DDR SDRAM. Figura 11.59 Indicando manualmente a latência do CAS de uma DDR SDRAM no CMOS Setup. No comércio encontramos módulos DDR SDRAM apenas com as indicações PC1600 (DDR200) ou PC2100 (DDR266). Apenas com essas informaçõ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, pois usando no CMOS Setup a configuração automática via SPD, os parâmetros corretos são automaticamente programados. Para checar o valor de CL permitido antes de comprar um módulo DDR, teríamos que anotar o nome e o fabricante dos seus chips, obter pela Internet o manual desses chips de memória e finalmente ter acesso a informações como a da figura 60. Neste exemplo, vemos que os chips MT46V16M8TG, produzidos pela Mícron, são produzidos nas versões –75 e –10 (7,5 ns e 10 ns). Esses chips podem operar com CL=2 em 133 MHz (DDR266A) e 100 MHz. Podem ainda operar com CL=2,5 em 150 MHz (DDR300) e 133 MHz (DDR266B). Figura 11.60 Os fabricantes de DDR SDRAM indicam os valores de CL que podem ser utilizados com 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 Velocidade Numero de bits Tempo de acesso 11-67 PC800, PC700, PC600 16 ou 18 40 a 55 ns Os módulos de 18 bits são usados em sistemas que operam com código de correção e detecção de erros (ECC). Os módulos de 16 bits são um pouco mais baratos e não utilizam este recurso. As velocidades estão relacionadas com a taxa de transferência: PC600 PC700 PC800 1,2 GB/s 1,4 GB/s 1,6 GB/s O tempo de acesso é outro fator importante. Assim como ocorre com as memórias SDRAM e DDR SDRAM, as memórias RDRAM necessitam de um pequeno tempo (similar à latência do CAS) antes que comecem a tranferir dados no modo síncrono. Conforme abordamos, as memórias RDRAM utilizam no seu interior, células de DRAM comuns, lentas como todas as memórias deste tipo. O único diferencial é que fazem acesso simultâneo a um elevado número de bits, que uma vez acessados, podem ser transferidos em alta velocidade. As memórias RDRAM são portanto classificadas de acordo com o seu tempo de acesso, que é o tempo necessário para que este grande número de bits sejam endereçados, acessados e estejam prontos para a transferência. Os fabricantes indicam em geral 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 40 ns. 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 as opções de clock e tempo de acesso (ou latência). A figura 62 mostra uma tabela extraída de um manual, indicando as versões produzidas. Observe que existem versões de 16 e de 18 bits, com clocks de 600, 711 e 800 MHz, e diversos tempos de acesso. Para as versões PC800, por exemplo, são oferecidos tempos de acesso de 40, 45 e 50 ns. Obviamente as versões com menor tempo de acesso são mais caras. 11-68 Hardware Total Figura 11.62 Opções de velocidade apresentadas por um fabricante de RDRAM: Clock e tempo de acesso. Nas placas de CPU equipadas com RDRAM, o BIOS pode obter os parâmetros de velocidade e tempo de acesso a partir dos dados armazenados na EEPROM SPD (Serial Presence Detect) da RDRAM, e programar o chipset para operar no modo correto. Em geral também é possível programar 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 de operação. Devemos completar os soquetes vazios com módulos de continuidade, 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ória Todos os chips de memória estão sujeitos a erros. A probabilidade da ocorrência de erros é muito pequena, mas dependendo da aplicação, o erro pode ser tolerado ou não. Se um computador usado exclusivamente para jogos apresentar um erro por ano, isto não causará problema algum. Se um computador usado no monitoramento de um reator nuclear, a taxa de um erro a cada 10 anos seria catastrófica. Existem mecanismos para detectar erros, e outros que permitem ainda corrigir o erro encontrado. Paridade A paridade é um recurso que serve para aumentar a confiabilidade das memó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 a erros, e a técnica da paridade foi amplamente utilizada com o objetivo de detectar eventuais erros na memória. Com o passar dos anos, as memórias DRAM foram aperfeiçoadas e tornaram-se mais confiáveis, fazendo com que o uso da paridade pudesse ser dispensado, pelo menos nas aplicações menos críticas. Ainda assim, computadores que necessitam de alta confiabilidade continuam utilizando módulos de memória com paridade para aplicar um outro 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 nono bit, chamado de bit de paridade. Este bit funciona como um dígito verificador, 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ódulos DIMM/168 (SDRAM) e DIMM/184 (DDR) com paridade operam com 72 bits ao invés de 64. Módulos RDRAM com paridade utilizam 18 bits, ao invés de 16. A paridade que já foi tão importante há alguns anos atrás, caiu de 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 de paridade, nem usam ECC. Os bits de paridade não são acessíveis ao processador. São usados por dois circuitos existentes no chipset: circuito gerador de paridade e circuito checador de paridade. O circuito gerador de paridade escreve o bit de paridade de cada grupo de 8 bits nas operações de escrita na memória. O circuito testador de paridade verifica a paridade em cada grupo de 8 bits lido da memória. Vejamos como funciona o bit de paridade e como é feita a detecção de erros na memória. Para simplificar a explicação, tomaremos apenas um grupo de 8 bits, mais um bit de paridade. Nas placas de CPU modernas, este mesmo circuito aparece repetido 8 vezes, completando assim 64 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 o uso do bit de paridade. O circuito gerador de paridade recebe o valor que o processador coloca na memória e "conta" quantos bits "1" estão sendo escritos. 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 grupo de 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. Nesse caso, entra em jogo o circuito testador de paridade. Em cada operação de leitura, este circuito recebe os 8 bits que o processador está lendo e mais o bit 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á existir obrigatoriamente 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 circuito gerará o que chamamos de interrupção do processador, que imediatamente suspenderá o processamento e apresentará uma mensagem de erro. Sob o Windows, este será um daqueles erros do tipo “tela azul”. Será preciso resetar o computador. Desta forma, o erro não será propagado, evitando que sejam causados danos aos dados. Vejamos como é feita a detecção de erros. Suponha que o processador escreve na memória, um byte com valor binário 01000001. O circuito gerador de paridade, ao encontrar neste valor dois bits "1" gerará um bit de paridade igual a 1. Suponha que depois deste dado estar armazenado na memó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 e o bit de paridade será 1. Quando o processador ler este valor, o circuito testador de paridade encontrará um total de 4 bits "1" no grupo de 9 bits, o que caracteriza um erro na memória. O circuito de paridade não é capaz de detectar um erro em que existem dois bits simultaneamente errados no mesmo grupo de 8 bits. Entretanto, o erro em um único bit é o mais comum. A probabilidade de existirem dois bits errados é milhares de vezes menor que a de existir apenas um errado. A paridade é 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 providenciar sua manutenção. Será necessário substituir o módulo de memória defeituoso. 11-72 Hardware Total ECC Uma outra técnica mais eficiente tem sido utilizada para detectar e corrigir erros na memória. Trata-se do ECC, e tem sido utilizada em placas de CPU de alta confiabilidade, como as usadas em servidores. Para cada grupo de 64 bits, 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 “com paridade”, e sim, “com ECC”. Qualquer bit armazenado na memória apresenta uma pequena probabilidade de erro. Dentro de uma célula de memória, a probabilidade de ocorrer erro em apenas um de seus bits é muito maior que a probabilidade de ocorrerem erros simultâneos, ou seja, em dois ou mais bits. Cálculos de probabilidade podem ser feitos para mostrar que, sendo muito pequena a probabilidade de um bit apresentar falha, temos: Tipo de falha Falha em um bit isolado Falha em 1 bits dentro de um grupo de 8 bits Falha em 2 bits simultâneos em um grupo de 8 bits Falha em 3 bits simultâneos em um grupo de 8 bits Probabilidade p 8p 28p2 56p3 Para simplificar os cálculos, suponha um chip de memória de baixíssima confiabilidade, com probabilidade de 1 em 1000 (p=0,001) de falha. As probabilidades de falhas em grupos de 1, 2 e 3 bits seriam: Tipo de falha Falha em um bit isolado Falha em 1 bits dentro de um grupo de 8 bits Falha em 2 bits simultâneos em um grupo de 8 bits Falha em 3 bits simultâneos em um grupo de 8 bits Probabilidade 0,001 0,008 0,000028 0,000000056 Comparando esses números, vemos que a probabilidade de dois bits falharem simultaneamente (0,008) é 285 vezes maior que a probabilidade de falharem dois bits simultaneamente. A chance de falharem 3 bits ao mesmo tempo é 142857 vezes menor que a de falhar apenas um bit. Na prática esta diferença é ainda maior, portanto todos os mecanismos de detecção e correção de erros são voltados a resolver problemas causados por erros do tipo single bit. As falhas nas células de memória são causadas por bombardeamento de partí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 em intensidades baixíssimas e inofensivas. Periodicamente ocorrem tempestades eletromagnéticas, que são explosões solares que emitem grande quantidade de 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élulas de memória. No início dos anos 80, as células de DRAM eram muito sensíveis, e podiam apresentar em média, um erro a cada 30 horas. Note que este tempo médio entre falhas (MTBF) é menor, quanto maior é o número de células de memória. Nos PCs atuais, o MTBF de um bit é bem maior (ou seja, podem passar muitos anos sem ocorrerem falhas), mas quando levamos em conta memórias de 256 MB e superiores, comuns em servidores, chegamos a MTBFs que variam entre 1 mês e 1 ano. Portanto é real a probabilidade de ocorrência de um erro em um dos seus bits, em períodos razoavelmente pequenos, principalmente quando levamos em conta que um servidor fica ligado 24 horas por dia. Não quer dizer que é preciso ficar ligado um mês para o erro ocorrer. Em um grupo de 256 MB, o erro pode acontecer depois de um ano, em outro pode ser depois alguns meses ou semanas, em outro pode ocorrer até no primeiro dia de uso. É tudo estatístico, um MTBF de um mês significa que se tomarmos vários computadores e marcarmos o tempo transcorrido 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 se transforma em 1 ou 1 se transforma em 0). Se o bit errado for detectado e corrigido, 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 os meios 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 e outros meios de armazenamento, são adicionados códigos para futura checagem de erros, o que aumenta a sua confiabilidade. Memórias RAM são bastante 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, este erro está em apenas um bit. A chance de ocorrerem dois erros simultâneos na mesma célula de memória é praticamente nula. Entretanto são usados códigos sofisticados que permitem detectar (mas não corrigir) erros em dois bits simultâneos. O funcionamento desses códigos é muito complexo, por isso mostraremos aqui como resolver o problema mais comum: detectar e corrigir erros do tipo single bit, ou seja, quando ocorrem em um único bit dentro de uma célula de memória. O método mais empregado é o chamado código de Hamming. Vamos apresentar um método mais simples, bastante parecido com o código de Hamming. Podemos chama-lo de método de Laercius – que obviamente não é usado na prática, e tem apenas fins explicativos. Ele não detecta erros em dois bits simultâneos, mas é de simples entendimento. Este método consiste em adicionar para cada dado, um grupo de bits de checagem. Quanto mais bits de dados, mais bits de checagem devem 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 8 bits 16 bits 32 bits 64 bits Bits adicionais usando o Bits adicionais usando o código de Hamming “código de Laercius” 5 5 6 6 8 7 8 8 Mostraremos o funcionamento da correção de erros pelo código de Laercius usando dados de 8 bits, por ser mais fácil de entender. O funcionamento para 64 bits é semelhante, mas didaticamente é mais fácil explicar como funciona para 8 bits. Para o grupo de 8 bits são adicionados 5 bits de checagem. 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. Para grupos de 64 bits, usados nos PCs modernos, bastam 8 bits para fazer a detecção e correção de erros, totalizando 72 bits, um aumento bastante viá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 de erros. A figura 66 mostra um dado de 8 bits, representado por b7b6b5b4b3b2b1b0. Os 5 bits de controle são p1, p2, p4, pd e pp. Esses 5 bits são calculados da seguinte 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 5 bits de checagem. Quando é feita uma leitura, são lidos os dados e os bits de checagem. Em função dos dados lidos, os bits de checagem são novamente calculados. São comparados os bits de checagem armazenados com os calculados. Se forem iguais, está tudo correto. Se existirem diferenças, temos um erro na memória. É recalculada a paridade dos dados pd. Também é recalculada a paridade dos bits de controle, pp. Se pd estiver correta, não existe erro nos 8 bits de dados da memória. Se pd indicar erro, então existe um bit errado, ou entre os 8 bits de dados, ou então o erro pode ser o próprio bit pd. Entrará então em jogo o bit de paridade pp. Se estiver errado, significa que existe um bit errado, que será necessariamente pd. Isto significa que os 8 bits de dados estão corretos. Se pp estiver correto, significa que os bits p1, p2, p4 e pd estão corretos, então o erro está em um dos 8 bits de dados. A explicação pode ser melhor visualizada através da figura 67. 11-76 Hardware Total Figura 11.67 Correção de erros pelo método de Laercius. 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 peso zero, quando são diferentes, recebem peso 1, 2 ou 4 respectivamente. Por exemplo, quando p1 calculado é igual ao p1 armazenado, p2 calculado é diferente do p2 armazenado, e p4 calculado é igual ao p4 armazenado, temos 0+2+4=6. Isto significa que o bit b6 está errado. Basta invertê-lo (trocar de 0 para 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 paridade dos bits de checagem. São portanto 8 bits de checagem ao todo. O mesmo esquema da figura 67 é utilizado, e os bits p1, p2, p4, p8, p16 e p32 são usados para indicar a posição do erro. OBS: Essa história de código de Laercius é brincadeira. Não sou o criador deste método, estou apenas repetindo o que aprendi em alguma aula de circuitos digitais, lá pelo início dos anos 80... Você não precisa conhecer os métodos utilizados pelos chipsets para detectar e corrigir erros na memória, mas precisa saber o seguinte: a) para cada grupo de 64 bits, são necessários 8 bits adicionais para implementar o ECC, totalizando 72 bits. b) Não adianta simplesmente usar memórias de 72 bits. É preciso que o chipset da sua placa de CPU utilize a geração e a checagem de erros. Muitos chipsets para PCs de baixo custo não operam com ECC. Memórias ROM A ROM (Read Only Memory, ou memória de apenas leitura) tem duas caracterí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ória ideal para armazenar o BIOS, que precisa entrar em execução assim que o computador é ligado. A segunda característica, seu próprio nome já diz. É usada apenas para operações de leitura, não permitindo gravações. A maioria das ROMs usadas em PCs utiliza o encapsulamento DIP (Dual Inline Package). O usuário nem mesmo precisa se preocupar com a instalação das ROMs. Já vêm instaladas e prontas para funcionar. As ROMs mais comuns são as que armazenam o BIOS da placa de CPU e o BIOS da placa VGA. Figura 11.68 Diagrama de uma ROM. A figura 68 mostra o diagrama de blocos de uma ROM. O chip recebe o endereço a ser acessado, que é por sua vez usado para acessar a matriz de cé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 controle OE (Output Enable) e CE (Chip Enable). São comuns ROMs que operam com células de 8 bits, e muitas operam com 16 bits. A ROM do nosso exemplo pode operar nos modos de 8 e de 16 bits, bastando que seja especificado o bit de controle Word/Byte. Note que esta é uma característica particular 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 e OE. Transscorrido o tempo de acesso, os dados estarão presentes no barramento de dados. Terminada a leitura devemo ser desativados os sinais CE e OE, fazendo com que o barramento de dados volte a ficar em alta impedância. ROM, PROM, EPROM As ROMs são encontradas em diversas modalidades. As principais diferenças dizem respeito a como os dados originais são armazenados. Em uso normal, a ROM aceita apenas operações de leitura, e não de escrita, mas antes disso, é preciso que alguém (normalmente o fabricante) armazene os seus dados. A ROM é o tipo mais simples. Seus dados são gravados durante o processo de 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. A partir deste conteúdo, o fabricante de memórias produz uma matriz, com a qual serão construídos milhares de chips. Normalmente só vale a pena utilizar ROMs quando se tem certeza de que seus dados não precisarão ser alterados, 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 uma diferença: pode ser programada em laboratório, através de um gravador especial. Este tipo de gravação é feito através da “queima” de microscópicos elementos, que são como pequenos fusíveis, feitos de material semicondutor. Uma PROM nova vem em estado “virgem”, ou seja, com todos os seus fusí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 ser modificada. No passado, as PROMs eram usadas em laboratório, durante o desenvolvimento de produtos que seriam posteriormente produzidos em larga escala, utilizando ROMs. Hoje existem métodos mais eficientes, mas as PROMs ainda são bastante utilizadas quando é necessário criar circuitos de alta velocidade. A EPROM ou UV-EPROM (Eraseable PROM, ou Ultra Violet Eraseable PROM) é uma ROM programável, que pode ser apagada e regravada. Seus dados podem ser apagados através de um feixe de luz ultra violeta de alta intensidade. As EPROMs possuem uma janela de vidro, através da qual podem incidir os raios ultra violeta usados no processo de apagamento. Esses raios são obtidos em um aparelho especial chamado “apagador de EPROMs”, que consiste em uma caixa plástica com uma lâmpada ultra violeta. Devido ao seu baixo custo em comparação com as PROMs, as EPROMs foram muito utilizadas pela indústria de informática, para gravação de BIOS, geradores de caracteres e outros dados fixos. Um pequeno fabricante que produz apenas algumas centenas de unidades de um produto não tem escala de produção suficiente para utilizar ROMs, que precisam ser produzidas aos milhares. 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 em laboratórios de desenvolvimento e manutenção. Laboratórios de desenvolvimento ou manutenção podem utilizar gravadores de ROMs (PROM, EPROM, EEPROM, UV-EPROM, FLASH ROM) que são ligados diretamente ao PC, através da porta serial ou paralela. Mediante o controle feito por um software que o acompanha, esses aparelhos são capazes de ler e gravar o conteúdo de um grande número de chips de ROMs programáveis. Flash ROM Desde os anos 80 existe no mercado um tipo especial de ROM, que pode ser programada e apagada eletricamente: a EEPROM ou E2PROM 11-80 Hardware Total (Eletrically Eraseable Programable ROM). Essas memórias são antecessoras das atuais Flash ROMs, que têm a mesma característica. São ROMs que podem ser regravadas através da aplicação de voltagens de programação especiais. 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 sido utilizado nas placas de CPU a partir de meados dos anos 90 para armazenar o seu BIOS. Pelo fato de serem alteráveis, permitem realizar atualizações do BIOS, através de programas especiais que ativam os seus circuitos de gravação. Este programa é fornecido pelo fabricante da placa de CPU. Figura 11.71 O BIOS da placa de CPU é armazenado em uma Flash ROM. As Flash ROMs também foram muito utilizadas para armazenar o “BIOS do modem”. Este termo é errado, o correto é dizer “o firmware do modem”. Trata-de de um software que é executado pelo processador (DSP, ou processador de sinais digitais) existentes no modem. Este software possui, entre outros módulos, os protocolos de comunicação. Logo que surgiram os primeiros modems de 56k bps, dois protocolos de fabricantes diferentes competiam para ser o padrão do mercado: o X2 e o K56Flex. Nenhum fabricante de modem tinha certeza sobre qual o protocolo seria adotado como padrão mundial, por isso passaram a escolher um deles e armazená-lo em uma Flash ROM no modem. Uma vez que fosse adotado o padrão definitivo, o novo protocolo poderia ser gravado nesta Flash ROM. No início de 1998 foi finalmente estabelecido o padrão V.90, e os fabricantes de modems passaram a oferecer através dos seus sites, um programa de atualizaçã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 das memórias. Enquanto as DRAMs modernas apresentam tempos de acesso inferiores 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 fornecem apenas 8 bits de cada vez. Os processadores modernos precisam ler 64 bits de cada vez, portanto os dados das ROMs precisam ser agrupados de 8 em 8, 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, as ROMs 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ível agrupar 8 ROMs para formar um grupo de 64 bits, mas esta é também uma solução bastante cara para o problema da sua lentidão. Felizmente existe uma técnica bastante simples e econômica para a solução deste problema, técnica esta utilizada desde o tempo dos PCs 286: a Shadow RAM. A técnica consiste em, logo no início do processo de boot, copiar o conteúdo da ROM (que armazena o BIOS da placa de CPU) para uma área da RAM. Feita esta cópia, a área de RAM que recebeu a cópia dos dados da ROM tem suas operações de escrita desabilitadas. Isto faz com que o comportamento seja similar ao de uma ROM (Read Only). Finalmente, esta área de RAM é mapeada sobre o mesmo endereço antes ocupado pela ROM, ao mesmo tempo em que a ROM é desabilitada. A partir daí passa a vigorar a cópia da ROM, feita sobre a RAM. A técnica da shadow RAM é utilizada para acelerar o BIOS da placa de CPU, o BIOS da placa de vídeo e outros BIOS eventualmente existentes em placas de expansão. A habilitação da shadow RAM é feita através do CMOS Setup. 11-82 ///////// FIM ////////// Hardware Total