• Nenhum resultado encontrado

Capítulo. Memórias. Leitura e escrita

N/A
N/A
Protected

Academic year: 2021

Share "Capítulo. Memórias. Leitura e escrita"

Copied!
82
0
0

Texto

(1)

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:

(2)

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:

ROM RAM

Significado Read only memory Random access memory Faz leituras SIM SIM

Faz escritas NÃO SIM Perde dados ao ser desligada NÃO 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.

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

(4)

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

(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

(6)

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, K6-2, K6-III, Pentium Pro, Pentium II, Pentium MMX, etc.

Figura 11.7

Módulo DIMM/168.

Se você precisar dar manutenção em uma placa de CPU Pentium 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.

(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

(8)

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

(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,

(10)

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 (A1-A8), 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.

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

(12)

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.

(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

(14)

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.

(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-1-1-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

(16)

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 Ciclo Clock

MT58L64L18PT-10 10 ns 100 MHz MT58L64L18PT-75 7,5 ns 133 MHz MT58L64L18PT-6 6 ns 166 MHz

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

Modo Pipelined

As memórias SRAM síncronas já apresentavam um melhoramento 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.

(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 flow-throug) 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.

(18)

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.

(19)

MT57V256H36PF-3.3 3.3 ns 300 MHz MT57V256H36PF-4 4 ns 250 MHz MT57V256H36PF-5 5 ns 200 MHz MT57V256H36PF-6 6 ns 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.

(20)

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

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

(22)

*** 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 Clock Ciclo Clock

20 ns 50 MHz 7 ns 143 MHz 15 ns 66 MHz 6 ns 166 MHz 13,3 ns 75 MHz 5 ns 200 MHz 12 ns 83 MHz 4 ns 250 MHz 10 ns 100 MHz 3,3 ns 300 MHz 8 ns 125 MHz 3 ns 333 MHz 7,5 ns 133 MHz 2,5 ns 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.

(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, 4-2-2-2, e assim por diante. Portanto os wait states podem ser usados tanto em operações assíncronas quanto síncronas.

(24)

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

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

(26)

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 =

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

(28)

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.

(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

(30)

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 277, coluna 320

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

Lembre-se que cada linha é acompanhada de um sinal RAS, e cada coluna é acompanhada de um sinal CAS. Ora, quando tomamos posiçõ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:

(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 Período Clock Período

33 MHz 30 ns 95 MHz 10,5 ns 40 MHz 25 ns 100 MHz 10 ns 50 MHz 20 ns 133 MHz 7,5 ns 60 MHz 16,6 ns 166 MHz 6 ns 66 MHz 15 ns 200 MHz 5 ns 75 MHz 13,3 ns 266 MHz 3,75 ns 83 MHz 12 ns 400 MHz 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

(32)

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.

(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”.

(34)

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

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

(36)

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

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

(38)

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.

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

Referências

Documentos relacionados

Os resultados numéricos são ainda confiáveis, porém, necessitam de conhecimento do software para que as constantes do material do elemento analisado sejam suficientes para

As unidades de acondicionamento de transporte de carga fracionada (em- balada), quando trafegando vazias, não podem permanecer com os rótulos de risco nem com os painéis de

fim do texto; o locutor necessita de tempo para refletir; perdeu o interesse em prosseguir seu discurso; não pode ou não quer dar uma resposta (por exemplo,

Dito isto, no terceiro texto da coletânea, publicado no ano de 1939, de seu texto sobre o teatro épico, encontramos um ensaio mais coeso e organizado por temas, desde o relaxamento

ESCOLA POLITÉCNICA DA UNIVERSIDADE DE SÃO PAULO Departamento de Engenharia de Computação e Sistemas Digitais.. PCS 2428 - Inteligência Artificial Gabarito

Pos Nr Piloto Cidade / UF Veículo/Mod Patrocinador Perdidos Pontos Zerad Pcs Perdidos Pontos Zerad Pcs Perdidos Pontos Zerad Pcs. 1 103

O dinheiro da mulher e suas implicações no casamento contemporâneo : uma visão feminina / Suzana Carvalho Maia Vasconcelos Rodrigues ; orientador:

Atua de forma alternada entre os pontos UM, DOIS, TRÊS e QUATRO com a mesma intensidade de força, proporcionando ao usuário uma massagem rela- xante com efeito tipo “rolo”..