Memórias Prof. André Luiz Memória - Conceito Memória é a capacidade de adquirir (aquisição), armazenar (consolidação) e recuperar informações. Nos sistemas de processamento de dados podemos simplesmente dizer que “Memória é um local onde se armazena informação”. Memória - Conceito Palavra é a unidade de informação de um sistema UCP/MEMÓRIA que deve representar o valor de um número ou uma instrução de máquina. Célula de memória, corresponde ao conteúdo de um endereço de memória, representa uma armazenamento na memória. RDM - Registrador de Dados de Memória REM - Registrado de Endereços de Memória UC - Unidade de Controle unidade de Memória - Classificação De uma maneira geral, a memória de um microcomputador pode ser dividida em três categorias: - Memória de armazenamento de massa, ou memória secundária; - Memória ROM (Read Only Memory); - Memória RAM (Random Access Memory), também conhecida como memória principal. Memória - Classificação As memórias também podem ser classificadas como: Memória voláteis; Memória não-voláteis. É comum diferenciarmos as memórias de acordo com a sua prioridade, custo e velocidade: Memória primária (principal); Memória secundária (auxiliar). Memória - Classificação Memória do Computador Memória Principal (inclui a memória cache) Memória Volátil Memória Auxiliar Memória Não Volátil Memória - Classificação Memória Auxiliar Memória Principal Não volátil Volátil Custo menor Custo maior Mais lenta Mais rápida Maior capacidade Menor capacidade Memória - Classificação Exemplos de memórias em um computador: 1) Registrador; 2) Memória Cache (L1,L2 e L3); 3) Memória ROM (ROM, PROM, EPROM e EEPROM/Flash); 4) Memória RAM; 5) Disco Rígido; 6) Disco Flexível; 7) CD / DVD; 8) PenDrive (EEPROM/Flash); 9) Outras (Buffers, ZipDrive, Fitas Magnéticas, SWAP, etc...) Memória - Classificação Memória - Classificação Memória - Classificação Memória de Armazenamento Também conhecida como memória secundária. A memória de armazenamento de massa é constituída pelos dispositivos de armazenamento permanente do micro, como os disquetes, discos rígidos, CD-ROMs, DVDs, Zip disks, etc. A memória é onde fica a informação armazenada e não o dispositivo utilizado para armazená-la. Por isso é que, por exemplo, o Zip disk é memória de armazenamento e o Zip drive não é. A grande vantagem da memória de armazenamento é que ela é permanente, ou seja, não é volátil. Assim as informações gravadas na memória de armazenamento não se perdem quando desligamos o micro. Infelizmente, por usar dispositivos eletromecânicos com tecnologia magnética/ótica, a gravação e a recuperação das informações se faz de forma muito mais lenta que nas memórias RAM ou ROM, que são totalmente eletrônicas. Memória de Armazenamento ' Memória - Classificação Memória ROM ROM PROM EPROM EEPROM Memória ROM A memória ROM é um tipo de memória presente no micro que, normalmente, só pode ser lida e não pode ser escrita, ao contrário da memória RAM que permite a leitura e a escrita. Existem dois motivos para que a memória ROM seja usada em um PC: - Ela não é volátil, ou seja, a informação contida nela permanece mesmo que desliguemos o computador. Na verdade, mesmo que o chip de memória ROM seja retirado do micro e guardado em um armário a informação continuará armazenada dentro dele. - A segurança de uma memória ROM é bastante grande, já que ela não pode ser facilmente modificada. Na verdade, alguns tipos de ROM nem podem ser modificados. Uma das funções mais comuns desempenhadas pelas memórias ROM no PC é o armazenamento do BIOS do micro. Além da placa-mãe, também encontramos memórias ROM na Placa de vídeo e em algumas placas de rede. Memória ROM ROM – este tipo de ROM é feita na fábrica para desempenhar uma função pré-determinada e não pode ser programada ou modificada de nenhuma forma. Alguns dispositivos como calculadoras e telefones celulares costumas utilizá-las. Poderíamos compará-la ao CD-ROM comercial, aquele que compramos com um determinado programa pré-gravado. Memória PROM PROM (Programmable ROM) – Este tipo de ROM pode ser programada através de um equipamento especial usado em laboratórios. Porém, uma vez programada, não pode ser modificada de nenhuma forma. Muito útil para quem trabalha com hardware em laboratório e para quem precisa de segurança máxima. É como se fosse um disco “virgem” de CD-R. Memória EPROM EPROM (Erasable PROM) – É uma PROM que pode ser apagada e programada novamente. Só que este tipo de PROM só pode ser apagada e programada utilizandose aparelhos existentes em laboratório eletrônicos, como emissores de luz ultravioleta, etc. Mantendo a analogia com CDs, seria o disco de CD-RW. Memória EEPROM EEPROM (Eletrical Erasable PROM) – Pode ser apagada e reprogramada, com um programa especial. Atualmente, quase todos as placas mães disponíveis no mercado possuem EEPROMs para armazenar o BIOS, permitindo assim o famoso “upgrade” ou atualização de BIOS. As memórias EEPROM encontradas nas atuais placas-mãe são chamadas de Flash-ROM ou Flash-BIOS. Memória RAM A memória RAM é utilizada para armazenar os programas e dados que estão sendo usados naquele momento pelo microcomputador. Ela foi a escolhida pela sua velocidade e pela versatilidade, já que, ao contrário da ROM, pode ser lida e escrita facilmente. O problema da memória RAM é que ela é volátil, ou seja, se não houver energia alimentando os chips da memória RAM, toda a informação armazenada nestes chips se perderá. Memória RAM Apesar de ser volátil, é muito mais rápida que a memória de armazenamento. O processador gasta cerca de 120 ns (nanosegundos, ou bilionésimos do segundo) para acessar uma informação gravada na RAM. Se o processador for acessar um HD, vai gastar 12 ms (milisegundos, ou milésimos do segundo). Em média, a memória RAM é 100.000 vezes mais rápida que a memória de armazenamento. Memória Virtual - SWAP Quando o Windows percebe que um micro possui um baixa quantidade de memória RAM, usa uma técnica chamada Memória Virtual. Este, “simula” a memória RAM no HD, ou seja, ele complementa a memória RAM “real” com uma memória RAM “virtual” no HD. Essa memória RAM “virtual” nada mais é do que um arquivo que simula a memória. No Windows XP ele tem o nome de PAGEFILE.SYS, mas dependendo da versão do Windows também pode ser chamado de 386PART.PAR, WIN386.SWP Memória RAM Quanto de memória RAM um micro precisa? Uma máquina com Windows 98 funciona muito bem com 128 MB de RAM. Mas se o sistema for o Windows XP, 128 MB pode ser muito pouco. É verificado que a quantidade de memória RAM é baixa quando a memória virtual é muito utilizada e uma atividade intensa do disco rígido. Máquinas em que o disco rígido praticamente não para de ser acessado, necessitam urgentemente de um aumento da quantidade de RAM. Memória RAM A memória RAM pode ser encontrada em vários formatos diferentes. O mais comum é encontrarmos a memória num formato de módulo, também chamado de “pente” de memória. Printed Circuit Board - PCB • Placa de circuito impresso (Printed Circuit Board – PCB) É a placa onde os chips de DRAM são colocados. Possui várias camadas e em cada uma delas existem trilhas internas que são usadas para se conectar os vários chips de DRAM presentes no módulo. Memória RAM • Chip de memória– Existem dois tipos de memória RAM: DRAM (ou RAM dinâmica) e SRAM (ou RAM estática). Para que a RAM do tipo SRAM armazene a informação é necessário corrente elétrica alimentando os chips de SRAM. As memórias DRAM precisam da eletricidade, além disso, as DRAM precisam de um sinal elétrico específico que as faz “lembrar” da informação que estão armazenando. Este sinal é chamado de sinal de “refresh”. A SRAM não precisa de DRAM. Em compensação chips de memória DRAM normalmente utilizadas microcomputador como a como a cache L2. sinal, sendo mais rápida que a as DRAM são mais baratas e os são bem menores. As SRAM são em aplicações específicas no memória cache, tanto a cache L1 Memória RAM • SRAM (Static RAM): - Tecnologia usada para construção registradores / mais cara / mais rápida; de cache e - Não exige refresh; - Formada por 4 ou 6 transistores; • DRAM (Dynamic RAM): - Tecnologia usada para construção de módulos de memória RAM / mais barata / mais lenta; - Exige refresh a cada 64 ms ou menos; - Formada por 1 transistor e 1 capacitor; - Consome mais energia e a transforma em calor. • Contatos metálicos São os contatos que o módulo de memória possui para que o mesmo possa ser conectado à placa-mãe. Normalmente estes contatos elétricos são banhados com uma fina camada de ouro. • Encapsulamento dos chips Encapsulamento é o nome que se dá ao formato físico dos chips. Os antigos chips de memória, da época do PC-XT usavam um encapsulamento do tipo DIP. Este encapsulamento também é muito comum em chips de memória ROM usados nas placas-mãe. DIP (Dual In-line Package) Quando se fala em chips, a primeira imagem que se faz é de um dispositivo retangular com “perninhas” em dois de seus lados. Este é o encapsulamento DIP e que hoje em dia já está caindo em desuso. Ele é feito para se encaixar em pequenos buracos do PCB. TSOP (Thin Small Outline Package) No Encapsulamento TSOP, o chip tem uma espessura muito pequena, bem menor que a do chip com encapsulamento SOJ. Foi usado pela primeira vez em cartões de memória para notebooks. CSP (Chip Scale Package) Não usa pinos para se conectar ao PCB. Ao invés disso ele possui pequenas esferas de metal em sua parte inferior. Este padrão de encaixe é chamado de BGA (Ball Grid Array). As memórias do tipo RDRAM e DDR-II usam este tipo. Empilhamento de chips O empilhamento de chips é usado para conseguir chips com quantidades de memória maiores. Pode ser interno ou externo. Nos empilhamentos externos podemos ver claramente os chips um em cima do outro. Já no empilhamento interno isto não é possível. Como funciona a memória Como o processador acessa a memória para obter as informações: CPU – O principal componente e centraliza todos os processos. Chipset – É o principal componente da placa-mãe. Normalmente é composto por dois chips principais: O controlador de memória (chamado também de “Northbridge”) e o Controlador de barramento (chamado também de “Southbridge”). É o chipset que faz a interface entre o processador o resto dos componentes da placa-mãe. Como funciona a memória Controlador de memória (“Northbridge”) – É responsável pela comunicação entre Cpu e memória RAM. Barramento – São vias de comunicação entre componentes distintos. O FSB, também chamado de Barramento Frontal, conecta o processador com o controlador de memória. O Barramento de memória conecta o controlador de memória com a memória RAM. Existem outros barramentos no micro, tais como Barramento PCI, AGP, etc. Velocidade da Memória Quando o processador precisa de uma informação ele envia um pedido ao controlador de memória que por sua vez faz a leitura das informações armazenadas nos bancos de memória e entrega a informação para o processador. Este ciclo completo: CPU/Chipset/RAM/Chipset/CPU é necessário para obtermos as informações da memória. Quanto mais rápido ele acontecer, mais rápido a CPU vai poder processar a informação, melhorando seu desempenho. Velocidade da Memória A velocidade da memória é indicada pelo tempo que um módulo de memória demora em fornecer uma informação a partir do momento que esta é solicitada pelo controlador de memória, chamado tempo de acesso. Velocidade da Memória O tempo de acesso é normalmente expresso em ns. As memórias usam uma tecnologia sincronizada a um sinal de clock, também se usa o clock para definir a velocidade da memória RAM. Assim, um módulo de memória síncrona com tempo de acesso de 10 ns opera com um clock de 100 MHz (1/10ns, pois clock=1/tempo de acesso). É importante lembrar que este clock é específico para o acesso à memória RAM. O processador costuma trabalhar com outro clock, chamado de clock da CPU. Exemplo de leitura da memória RAM. Neste caso o tempo de acesso dos módulos (70 ns) é apenas uma parte do tempo total de acesso, pois ainda existe o tempo que o controlador de memória perde para fornecer as informações para a CPU (125 ns). Desempenho do micro e memória Apesar de terem evoluído muito, elas simplesmente não estão conseguindo acompanhar o ritmo dos processadores. Isso é um problema, pois não adianta nada o processador trabalhar rápido se não conseguir acessar os dados de forma rápida também. Ou seja, o desempenho do micro é bastante dependente da velocidade de trabalho das memórias. Memória Cache Memória cache é um tipo de memória de alta velocidade que fica próxima à CPU e consegue acompanhar a velocidade de trabalho da CPU. Por ser uma memória de alta velocidade ela é difícil de ser produzida e por isso mesmo muito cara. Por isso é que raramente encontramos quantidades de memória cache maiores que 1 MB. É bom lembrar que, ao invés da tecnologia DRAM, usa-se a tecnologia SRAM para a produção de chips de memória cache. Memória Cache A idéia por trás do cache é muito simples: colocar na memória cache os dados e instruções que são mais comumente utilizados pelo processador. É a regra 80/20, ou seja, 20% dos dados/instruções/etc. são usados 80% das vezes no micro. Assim se estes dados/instruções/etc. estiverem no cache, que é muito mais rápido que a memória RAM “normal”, o desempenho do micro será muito melhor. Existe um circuito especifico que faz isso automaticamente chamado Controlador de cache. Este circuito tenta, inclusive, “adivinhar” quais serão os dados solicitados pelo processador. Memória Cache Se o processador precisa de uma informação e ela está no cache, a informação é acessada e o desempenho é alto. Quando isso acontece, chamamos de cache “hit” ("acerto"). Porém se a informação não estiver no cache, ela vai ter que ser lida da memória RAM “normal”, o que é um processo mais lento. Este caso é chamado de cache “miss” ("erro"). A idéia é fazer com que o número de cache hits seja muito maior que o número de cache misses. Níveis de cache De acordo com a proximidade do processador são atribuídos níveis de cache. Assim, a memória cache mais próxima da CPU recebe o nome de cache L1 (do inglês "level 1" ou nível 1). Se houver outro cache mais distante da CPU este receberá o nome de cache L2 e assim por diante. Níveis de cache Na época do 8088 e 80286 era raro encontrar um micro com memória cache. Mas com o surgimento do 80386 começaram a aparecer micros com placas-mãe que possuíam memórias cache. Naquela época quase ninguém usava a nomenclatura de caches por níveis. Falava-se simplesmente “memória cache” se referindo a memória que estava na placa-mãe. Níveis de cache Com o lançamento do 80486 a Intel incorporou memória cache a seus processadores, dentro do próprio chip. Por sua vez, as placas-mãe também possuíam memória cache. Par diferenciar, e também pela localização do cache, essas memórias cache ficaram conhecidas como: cache interno (que seria o cache L1 – dentro da CPU) e cache externo (que ficava na placa-mãe e deveria se chamar L2). Isso valeu até o lançamento do Pentium II quando a Intel “incorporou” o cache externo (ou melhor, L2) ao cartucho que formava o processador. Atualmente a maior parte dos processadores incorpora a memória cache em seu chip propriamente dito e por isso a nomenclatura cache L1, L2, L3, etc. é mais correta e também mais usada. Diferentes tecnologias e formatos de módulos de memória Existem diferentes formatos para os módulos de memória. Além disso, os chips de memória destes módulos também podem possuir tecnologias diferentes. É bastante comum as pessoas confundirem formatos de módulos (SIMM, DIMM, etc.) com a tecnologia das memórias que os compões (FPM, EDO, SRAM, etc.) Classificação das memórias • Quanto ao formato usado (encapsulamento) (SIMM, DIMM, etc.) • Quanto à tecnologia usada (EDO, SDRAM, DDR, DDR2, etc.) Formato Os formatos dos módulos de memória são padronizados e estabelecidos por organismos internacionais. A razão para termos módulos de formatos diferentes é simples: à medida que a tecnologia dos chips que compõe o módulo avança é necessário fazer uma atualização da forma do módulo de modo que este possa desempenhar melhor suas funções. Formato • MR de 286 e primeiras de 386 Formato SIPP SIPP é a sigla de Single Inline Pin Package. O módulo SIPP foi a primeira idéia de se criar um módulo mais fácil de manipular que os chips de memória no formato DIP que existiam na época. Ele, porém, continuava a usar as “perninhas” presentes nos chips de memória do formato DIP, apesar dos chips de memória estarem fixados a uma placa (PCB). Por não ter um manuseio simples ele foi logo substituído por um formato mais interessante batizado de SIMM. Formato SIPP Formato SIMM A sigla SIMM quer dizer Single Inline Memory Module. Em um módulo SIMM os chips de memória são fixados em um PCB (placa de circuito) retangular que possui um fila de contatos elétricos dispostos simetricamente nos dois lados do PCB. Mas, no módulo SIMM, o contato elétrico de um lado é exatamente igual ao do outro lado. Formato SIMM Os módulo SIMM de 30 vias são capazes de fornecer grupos de 8 bits de cada vez para a CPU. Assim dependendo do processador são necessários 2, 4 e até oito módulos SIMM para compor um banco de memória. Se um dos módulos estiver faltando ou queima do o banco não será “enxergado” pelo o processador. Para processadores que acessam a memória em 32 bits, como o 386 ou 486 são necessários 4 módulos SIMM de 30 vias para completar um banco de memória. Usando SIMM 30 vias Formato SIMM Para facilitar a vida de quem instalava memória nos micro, foi criado o módulo SIMM de 72 vias (ou “pinos”). A diferença é que o módulo SIMM é capaz de fornecer 32 bits de cada vez para a CPU. Assim um banco de memória para processadores 386 ou 486 é composto de apenas 1 módulo de memória SIMM de 72 vias. Mas se processador for da classe Pentium ou superior são necessários dois módulos SIMM de 72 vias, pois estes processadores acessam a memórias em 64 bits. SIMM 72 vias Formato SIMM Exemplo de módulo no formato SIMM 72 vias Formato SIMM DIMM é a sigla para Dual Inline Memory Module. Diferente dos módulos SIMM onde os contatos dos dois lados do módulo eram iguais, no módulo DIMM este contatos são independentes. Isto exigiu que os soquetes onde os módulos são encaixados na placa-mãe fossem redesenhados. Os módulos DIMM são capazes de transferir 64 bits de cada vez para o processador. Desta forma os bancos de memória são compostos de apenas um módulo DIMM a não ser quando usamos a técnica de “Dual-channel” que veremos mais adiante. Formato SIMM Atualmente existem 3 formatos de módulos DIMM no mercado: DIMM de 168 vias (84 contatos em cada lado), DIMM de 184 vias (92 contatos em cada lado) e DIMM de 240 vias (120 contatos de cada lado). • O DIMM 168 é composto normalmente por memórias com tecnologia SDRAM • O DIMM 184 usa memórias com tecnologia DDR e • O DIMM 240 usa memórias com tecnologia DDR2. Formato DIMM módulo no formato DIMM 168 vias módulo no formato DIMM 184 vias 2.5v módulo no formato DIMM 240 vias 1.8v Formatos DIP SIPP SIMM 30 pin SIMM 72 pin DIMM (168-pin) DDR DIMM (184-pin) Formato SODIMM O Formato SODIMM é usado em notebooks onde o espaço ocupado por um módulo DIMM seria muito grande. SODIMM vem de Small Outine DIMM, ou seja, um DIMM num formato menor. Temos módulos no formato SODIMM de 72 vias (pinos) que fornecem apenas 32 bits para o processador e dos formatos SODIMM de 144 vias (pinos) e 200 vias (pinos) que fornecem 64 bits para o processador. O formato SODIMM de 72 vias usa memórias com tecnologias mais antigas como FPM e EDO. Já o formato SODIMM de 144 vias também pode ter chips de memória SDRAM e o SODIMM de 200 pinos usam memórias DDR. Tecnologias • EDO - Extended Data Output (1x leitura) SDRAM PC-100 SDRAM PC-133 800 MB/s 1.064 MB/s • DDR - Double Data Rating (2x leitura - buffer 2 bits) 100/200 Mhz DDR-200 ou PC-1600 DDR-266 ou PC-2100 DDR-333 ou PC-2700 DDR-400 ou PC-3200 1.600 MB/s 2.100 MB/s 2.700 MB/s 3.200 MB/s • DDR2 - Double Data Rating (4x leitura - buffer 4 bits) 200/400 Mhz Dual DDR-226/DDR2-533 4.200 MB/s Dual DDR-333/DDR2-677 5.400 MB/s Dual DDR-400/DDR2-800 6.400 MB/s • DDR3 - Double Data Rating (8x leitura - buffer 8 bits) 200/533 Mhz DDR3-800 DDR3-1066 DDR3-1333 DDR3-1600 6400 MB/s 8533 MB/s 10667 MB/s 12800 MB/s Tecnologias Tecnologias - Endereços CAS (Collumn Address Strobe). RAS (Row Address Strobe) Para o processador acessar uma célula de memória, é preciso primeiro fornecer à memória um 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 (Collumn 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. Tecnologias - Endereços CAS (Collumn Address Strobe). RAS (Row Address Strobe) Nomeclatura Em relação à nomenclatura, as memórias DDR2 seguem praticamente o mesmo padrão das memórias DDR, como mostra a tabela a seguir: Trabalha com voltagem de 1.5 V, menor que a 1.8 V da DDR2 ou os 2.5 V da DDR Consumo Memórias DDR = 2.5 V Memórias DDR2 = 1.8 V Memórias DDR3 = 1.5 V menor consumo = menos aquecimento = melhor performance A mesmo relação observada nos microprocessadores.