Memória

Tecnologia Informática


Introdução

Considera-se memória como os elementos dum computador capazes de conservar dados durante um período de tempo e sob condições específicas e disponibilizá-los electronica e automaticamente para processamento na forma binária.
Esta caracterização excluiu por exemplo uma folha de papel onde esteja informação sobre a forma binária (0’s e 1’s), pois não é possível converter automaticamente essa informação em impulsos binários eléctricos.

Um computador tem por norma vários elementos de memória, tenda cada um propriedades e funcionalidades distintas. O conjunto de todos elementos de memória do computador denomina-se sistema de memória. O sistema de memória é um dos principais componentes do computador pois é aqui que toda a informação necessária para que o sistema funcione é mantida:

Dos vários elementos que compõem o sistema de memória, distinguem-se dois grandes grupos:

Embora a memória secundária seja estudada posteriormente, importa distinguir desde já estes dois grupos:

  Velocidade Capacidade Persistência*) Expansão Espaço Preço
Primária Alta Pequena Volátil Díficil Grande Alto
Secundária Baixa Grande "Eterna" Simples Pequeno Baixo

Tabela 4.1 - Principais diferenças entre memória primária e secundária

*) No entanto, a propriedade da persistência da informação não é generalizável a todo o tipo de memória primária, pois existem vários tipos caracterizáveis segundo essa propriedade:

ROM (Read Only Memory)

PROM (Programmable Read Only Memory)

EPROM (Erasable Programmable Read Only Memory)

EEPROM (Electronically Erasable Programmable Read Only Memory)

RAM (Random Acess Memory)

Este módulo começa por caracterizar e classificar alguns dos muitos tipos de RAM existentes, passando depois a explicar sucintamente a aplicação e funcionalidade dos vários componentes do sistema de memória. Finalmente apresenta alguns termos e expressões associados a esta tecnologia.

Índice


Classificação de RAM

No que se refere a memória RAM a sua classificação é feita segundo diferentes aspectos:

Funcionamento Interno

A memória RAM é caracterizada por necessitar de "alimentação" contínua de forma a não perder os valores aí registados. Este tipo de memória é constituído por capacitadores (tipo bateria) que mantêm determinada carga durante um curto espaço de tempo. Este processo denomina-se "refresh" e ocorre todos 15 microsegundos (valor de referência em 1998).

Além desta característica, são distiguidos dois tipos fundamentais de memória quanto ao seu funcionamento interno:

DRAM (Dynamic RAM)

Memória dinâmica. Caracteriza-se pelo facto de perder os valores sempre que é lida. Os valores são perdidos e têm de ser reescritos, o que faz aumentar os tempos de acesso. Funcionalmente caracteriza-se por:

SRAM (Static RAM)

Memória estática. A sua denominção surge por contraponto com a DRAM, pois esta conserva os seus valores aquando da leitura, não sendo necessário perder o tempo de reescrita dos valores, aumentando por isso o seu desempenho. Funcionalmente caracteriza-se por:

Assincronismo/Sincronismo

Este aspecto relaciona a forma como a RAM comunica com o sistema e especialmente como responde ao CPU. Existem duas formas:

Assíncrona

Síncrona

Funcionamento Interno Vs. Sincronismo/Assíncronismo

Em termos de comparação de tecnologias/siglas, as relações são as seguintes:

  Dinâmica Estática
Assincronismo DRAM SRAM
Sincronismo SDRAM BSRAM

Interface

A memória apresenta-se em diferentes formatos, correspondendo a cada um várias características de interligação com o sistema. Ou seja, determinada "apresentação" não pode ser aplicada em qualquer tipo de sistema.
No seu aspecto mais básico, a memória é um circuito integrado (tal como se apresenta na Figura 4.1).

Figura 4.1 - Representação de um chip de memória

Figura 4.2 - Representação da agregação de chips em módulos [fonte]

Um dos problemas relacionados com o acesso a memória é a largura do barramento (em bits). Quanto mais largo fôr mais eficiente será, tendo por contraponto o desempenho do tempo de resposta da própria memória, o tamanho físico da interface e o custo.
Quando os primeiros SIMM's surgiram tinham 30 pinos para conexão, tendo posteriormente evoluído para 72. Com o aparecimento da memória SDRAM (DRAM síncrona) em DIMM's, este número aumentou para 168. A Figura 4.3 apresenta esses três tipos de conectores.

Figura 4.3 - SIMM's de 30, 72 e 168 conectores [fonte]

Índice


Aplicação e Funcionalidade

Distinguem-se fundamentalmente 2 aplicações ao sistema de memória:

Arranque

Na altura em que o computador é ligado, é necessário que algum dispositivo saiba o procedimento de arranque, que dispositivos existem, como se interligam com os outros, como se deve verificar a sua validade e funcionalidade, etc. Esta funcionalidade está dependente de instruções e dados inseridos em memória.

Tal dispositivo é o BIOS (Basic Input/Ouput System), que não é mais do que uma ROM, PROM, EPROM ou EEPROM (cada vez mais são EEPROM), na qual existem vários programas que permite ao sistema auto-verifiar-se, auxiliar a configurar, agrupar informação de coordenação, arrancar o sistema operativo e posterior operação.
Quando o CPU recebe energia, transfere o comando do sistema para o BIOS, que posteriormente lho devolverá através do Sistema Operativo.

Cada dispositivo exterior poderá dispor de um BIOS particular. Os programas aí existentes, denominadas habitualmente rotinas de E/S, serão transferidas para memória central e agrupada com as rotinas do BIOS de sistema. Desta forma os dispositivos externos podem evoluir sem que o BIOS do sistema seja alterado. Por exemplo a unidade de disquetes é completamente dependente da BIOS do sistema, pelo que não é possível alterá-la sem disponibilizar um BIOS particular.
Os programas do BIOS de cada dispositivo, servirão posteriormente para que o S.O. aceda e disponibilize para as aplicações, os recursos de cada um.

A fase de arranque é composta por três passos:

POST

O primeiro procedimento de arranque é o POST (Power-On Self Test), auto-teste no arranque. Tem por missão executar procedimentos de teste dos componentes fundamentais instalados do sistema, tal como BIOS (nome e versão), CPU (tipo e quantidade), Memória (tipo e quantidade), Barramento E/S, etc.

Neste momento no entanto, não há garantias de que qualquer dispositivo E/S esteja a funcionar correctamente, pelo que este não deve recorrer ao monitor para apresentar as mensagens de erro. Assim, se ocorrer algum erro estes serão apresentados sobre a forma de som emitido pelo altifalante (nem sempre presente e nem sempre operacional!...). Para cada programa de POST existe no manual uma tabela com o número de sons emitidos e a respectiva descrição do erro.

Depois de todos os testes serem realizados, o BIOS organiza informação de coordenação dos vários componentes do sistema, nomeadamente IRQ's, prioridades, endereços de E/S, que serão posteriormente passados para arranque e operação do S.O..

Configuração

No entanto, o BIOS não é auto-suficiente em informação acerca do sistema, pois este pode evoluir ao longo da vida. Por exemplo, a data e hora, unidades de discos, dispositivos externos, disco primário, etc. são evolutíveis. Estas características são necessárias aquando do arranque, mas não deverão ser constantemente definidas pelo utilizador.

Figura 4.4 - Representação da agregação de chips em módulos [fonte]

Como é que tudo isto fica armazenado de uma sessão para outra? Existe um componente do sistema de memória que mantem esses dados ao mesmo tempo que permite alterá-los. Este componente pode ser de dois tipos:

Nota: Em qualquer dos casos deverá existir uma bateria, capaz de fornecer corrente eléctrica ao relógio do sistema, para que os valores se mantenham actualizados.

A alteração dos valores aí existentes é realizada a comando do utilizador por um aplicação existente no BIOS, que se designa Configuration Setup. Para se executar essa aplicação devem seguir-se as instruções que aparecem no ecran, sendo necessário carregar numa tecla (normalmente DEL) em determinado momento do arranque.

Carregamento do Sistema Operativo

O arranque do S.O. é também dependente do BIOS. Um dos parâmetros existentes na memória associada ao BIOS é a unidade de disco primária, ou seja, onde existe o sistema operativo.

Quando os testes terminam, o BIOS é responsável por procurar no primeiro sector (Boot sector) da unidade de disco especificada e transferir para memória o que se designa por Master Boot Record. O programa encontrado no Master Boot Record denomina-se Boot Loader e não é mais do que um conjunto de instruções que o CPU seguirá para o carregamento e arranque do sistema operativo.
Por norma cada sistema operativo disponibiliza um Boot Loader específico que carrega apenas o sistema operativo para que foi criado. Existem no entanto outros boot loader's que permitem especificar determinados parâmetros de arranque, nomeadamente o próprio S.O.. Ou seja, um utilizador que disponha de vários S.O. nas unidades de armazenamento do seu computador, pode especificar aquando do arranque qual o S.O. que deseja carregar.

Existe também a possibilidade de, aquando da junção dos BIOS dos diversos dispositivos exteriores na RAM, um deles especificar uma forma alternativa de carregamento do S.O.. Por exemplo, no caso do sistema operativo existir num servidor de ficheiros, o BIOS do adaptador de rede deverá informar o BIOS do sistema de que deverá passar a esse adaptador a competência de arranque. Outro exemplo é o caso do MS-Windows CE, existente nalguns computadores de bolso que existe em ROM, PROM, EPROM ou EEPROM e que substitui o S.O. tradicional existente em disco.

A Figura 4.5 resume o processo descrito.

Figura 4.5 - Esquema básico de utilização de memória ao longo de várias fases do funcionamento do computador [fonte]

Operação

Inicia-se então a fase de operação, na qual o S.O. é responsável pela gestão e coordenação do sistema. O S.O. e aplicações são transferidas para memória para serem executadas pelo CPU. Como é evidente, a aplicação é transferida para memória apenas na altura em que é necessário. Essa tarefa é realizada a pedido do utilizador ou mediante qualquer instrução interna. O S.O. é então responsável por encontrar a aplicação (em disco local, disco de rede, internet, etc.) e carregá-la em memória.

Memória Principal

Esta memória é habitualmente do tipo DRAM, devido ao seus custo e características físicas. Não se trata dum tipo de memória de desempenho óptimo, mas o tipo razoável mediante custo Vs. desempenho e aplicação Vs. solução.
Este tipo, apesar da evolução registada nos últimos anos (sincronismo e aumento de barramento), tem um desempenho abaixo das exigências do CPU, o que implica que o desempenho do sistema seja afectado por este baixo (relativo) desempenho. Assim sendo, acontece por vezes compassos de espera (wait states) por parte do CPU e que são inconvenientes para o bom desempenho do sistema.

Memória Cache

Por isso revelou-se necessário criar sistemas de memória mais rápidos e próximos do CPU capazes de diminuir ou excluir os estados de espera. Surgiu assim o conceito de memória cache, que se caracteriza por ser em pequena quantidade mas de grande desempenho, normalmente do tipo SRAM.

Esta memória pretende substituir a memória principal sempre que possível. Assim, quando o CPU manipular informação em memória pede ao sistema de memória (via controlador de memória), que se encarrega de cumprir os pedidos do CPU. Este por sua vez, fá-lo-á prioritariamente na memória cache, sendo acedidos na memória principal apenas quando não existam em memória cache. Se os dados não existirem em cache ou não poderem ser escritos aí, o controlador de memória encarrega-se de gerir o acesso à memória principal de forma transparente para o CPU. Os valores escritos em cache serão escritos na memória principal (pelo controlador de memória), quando não existirem pedidos a satisfazer, não prejudicando por isso o desempenho do resto do sistema.

Um computador actual típico dispões de vários tipos de cache, denominados níveis. Por norma existem três níveis:

Índice


Termos e Expressões

BSRAM

Burst Synchronous RAM, também conhecido por SynchBurst RAM. É um tipo de SRAM que funciona em modo síncrono, o que facilita a sincronização com o CPU. Usa o sinal de relógio do sistema ou do sistema de cache para sincronismo. Aplica-se fundamentalmente em cache de Nível 2.

EDO RAM

Extended Data Output RAM. Diz respeito a uma forma avançada de acesso aos valores dentro da própria memória, normalmente do tipo DRAM. Surgiu como uma melhoria do modo FPM, o que melhorou consideravelmente o desempenho da memória. Esta melhoria levantou a ideia de que a cache de Nível 2 era dispensável, mas com a evolução dos CPU's essa ideia foi abandonada.

FPM

Fast Page Mode DRAM. É um modo de acesso aos valores dentro da própria memória, noramalmente do tipo DRAM. Este modo está completamente obsoleto e não é utilizado vulgarmente. Os tempos de acesso conseguidos com este modo são superiores a 70 ns. Posteriormente surgiu o modo EDO.

PC100

É uma especificação de memória síncrona, desenvolvida pela Intel para ser aplicada pelos fabricantes de memória. Esta especificação surgiu no sentido de caracterizar o tipo de memória necessário no chip set i440BX. Posteriormente vulgarizou-se o termo SDRAM.

RAMDAC

RAM Digital-to-Analogic Converter. É um tipo de RAM, composta por uma parte de SRAM e outra de 3 conversores de sinais analógicos em digitais (DAC). Na parte de SRAM existe uma tabela que relaciona os índices das cores recebidas da VRAM, com o sinal analógico referente a cada uma das cores Vermelho, Verde e Azul (RGB) com os quais qualquer outra cor é produzida. Os 3 DAC são responsáveis por traduzir os valores recebidos da parte SRAM em sinal analógico e emitir o sinal para o Tubo de Raios Catódicos.

RDRAM

Rambus Dynamic RAM é uma tentativa de especificação da memória do futuro, em desenvolvimento pela Rambus e Intel. Esta memória, síncrona, funcionará potencialmente a velocidades de 600MHz.

VRAM

Video RAM é o nome genério dum tipo de memória utilizado em adaptadores de video, e que se caracteriza pelo seu alto desempenho e pela sua dupla porta, o que significa que cada posição de memória pode ser simultaneamente lida e escrita, aumentando por isso o desempenho. Na realidade o que se passa é que cada posição de memória são duas, enquanto uma delas é lida a outra pode se escrita.

Índice


Sumário

É objectivo deste estudo:

Índice


Última actualização: 02 Maio 2005

Tecnologia Informática - Tópicos