O documento fornece uma visão geral sobre dispositivos de armazenamento, discutindo tipos de memória, tecnologias de construção e hierarquia de memórias.
Dê a Cara a Tapa: Uma Palestra Intrigante sobre Oceano Azul, Cauda Longa, Mer...
Memórias de computador: RAM, ROM e hierarquia
1. -1-
MEMÓRIAS: UMA VISÃO GERAL SOBRE DISPOSTIVOS DE
ARMAZENAMENTO
Bruno Machado da Silva ¹
Jerônimo Medina Madruga ²
Mateus Vilar do Santos ³
Resumo
Nesse trabalho visamos obter uma visão geral sobre os conceitos de memória, o
dispositivo responsável por armazenar dados em sistemas computadorizados, desde os tipos
de memória, as diferenças entre RAM e ROM, as tecnologias de construção, a hierarquia de
memórias e abordar também o funcionamento de uma memória hipotética. Com isso, visamos
aprofundar nossas bases cientificas sobre um dos elementos mais importantes na área da
computação e por assim ser aprimorar nossos conhecimentos acadêmicos na área.
Introdução
A memória em um sistema computadorizado tem uma função vital: guardar as
informações que deverão ser lidas pelo processador, como dados ou instruções a serem
executadas. Por isso, a quantidade de memória em um sistema pode determinar o tamanho
das aplicações que poderão ser executadas nesse sistema, além de a velocidade de acesso as
memórias influenciar diretamente no desempenho do computador. Por isso a uma constante
evolução nas tecnologias empregadas para a implementação de memórias, melhorando a
velocidade de acesso e capacidade de armazenamento, além do desenvolvimento de técnicas
de software que visa aproveitar o máximo o recurso oferecido pelas memórias, como os
conceitos de localidade temporal e de localidade espacial, que serão discutidos nos tópicos a
seguir.
Tipologia de memória
Podemos utilizar diversos critérios para classificar as memórias, mas o mais
interessante para nossa análise usa como referência o tipo de endereçamento das memórias,
classificando-as em duas categorias:
- Memórias primárias: são memórias que o processador pode endereçar diretamente,
sendo vitais para a operação do computador. Elas geralmente atuam como uma ponte para as
secundárias, mas a sua função principal é a de conter a informação necessária para o
1 – Bacharelando em Ciência da Computação; Universidade Federal de Pelotas. Contato: torate@gmail.com
2 – Bacharelando em Ciência da Computação; Universidade Federal de Pelotas - Tecnólogo em sistemas de telecomunicações;
Centro de educação Tecnológica de Pelotas. Contato: jeronimo.madruga@gmail.com
3 – Bacharelando em Ciência da Computação; Universidade federal de Pelotas. Contato: mateus.santos@gmail.com
2. -2-
processador num determinado momento, como os programas em execução em uma estação
de trabalho. Nesta categoria estão a memória RAM e memória ROM.
- Memórias secundárias: memórias que não podem ser endereçadas diretamente,
sendo assim a informação precisa ser carregada na memória primária antes de poder ser
acessada pelo processador. Não são estritamente necessárias para a operação do computador
e são, geralmente não-voláteis, permitindo guardar os dados permanentemente. Incluem-se,
nesta categoria, os discos rígidos, mídias ópticas e disquetes.
Memória ROM X Memória RAM
Apesar de as memórias ROM e as memórias RAM serem classificadas como memórias
primarias, existem diversas diferenças tanto na tecnologia empregada na construção das
memórias quanto no funcionamento delas, o que nos leva a fazer uma classificação bem
distinta entre elas como pode ser visto a seguir:
Memória ROM: ROM é a sigla para Read Only Memory (memória somente de leitura).
Pelo nome, é possível perceber que esse tipo de memória só permite leitura, ou seja, suas
informações são gravadas pelo fabricante uma única vez e após isso não podem ser alteradas.
Mas esse conceito já está ficando desatualizado, se observarmos os tipos de memória ROM
que serão citados a seguir:
- PROM (Programmable Read Only Memory) - um dos primeiros tipos de memória
ROM, o PROM tem sua gravação feita por aparelhos especiais que trabalham através de uma
reação física com elementos elétricos. Os dados gravados na memória PROM não podem ser
apagados ou alterados.
- EPROM (Electrically Programmable Read Only Memory) - esse é um tipo de memória
ROM geralmente usado para armazenar a BIOS do computador. A tecnologia EPROM permite
a regravação de seu conteúdo através de equipamentos especiais.
- EAROM (Electrically Alterable Read Only Memory) - são memórias similares à
EPROM (também conhecidas como EEPROM ou E2PROM). Seu conteúdo pode ser apagado
aplicando-se uma voltagem específica aos pinos de programação.
Um fato importante a ser citado é que, atualmente, usa-se um tipo diferente de
memória ROM. Trata-se da FlashROM, um tipo de chip de memória para BIOS de computador
que permite que esta seja atualizada através de softwares apropriados. A tecnologia flash
utilizada na fabricação da FlashROM tem como vantagem sobre a EEPROM a velocidade de
acesso mais rápido, já que esse tipo de tecnologia não endereça byte a byte a memória (como
ocorre nos tipos mais primitivos de ROM), mas sim em blocos de tamanho variado, o que
permite uma velocidade de acesso muito maior.
1 – Bacharelando em Ciência da Computação; Universidade Federal de Pelotas. Contato: torate@gmail.com
2 – Bacharelando em Ciência da Computação; Universidade Federal de Pelotas - Tecnólogo em sistemas de telecomunicações;
Centro de educação Tecnológica de Pelotas. Contato: jeronimo.madruga@gmail.com
3 – Bacharelando em Ciência da Computação; Universidade federal de Pelotas. Contato: mateus.santos@gmail.com
3. -3-
Memória RAM: RAM é a sigla para Random Access Memory (memória de acesso
aleatório). Este tipo de memória permite tanto a leitura como a gravação e regravação de
dados. No entanto, assim que elas deixam de ser alimentadas eletricamente, ou seja, quando o
usuário desliga o computador, a memória RAM perde todos os seus dados. Basicamente
existem 2 tipos de memória RAM: estáticas e dinâmicas e as veremos a seguir:
- DRAM (Dynamic Random Access Memory): são as memórias do tipo dinâmico e
geralmente são armazenadas em cápsulas CMOS (Complementary Metal Oxide
Semiconductor). Memórias desse tipo possuem capacidade alta, isto é, podem comportar
grandes quantidades de dados. No entanto, o acesso a essas informações costuma ser mais
lento que o acesso à memórias estáticas. As memórias do tipo DRAM costumam ter preços
bem menores que as memórias do tipo estático. Isso ocorre porque sua estruturação é menos
complexa, ou seja, utiliza uma tecnologia mais simples.
- SRAM (Static Random Access Memory): são memórias do tipo estático. São muito
mais rápidas que as memórias DRAM, porém armazenam menos dados e possuem preço
elevado se compararmos o custo por MB. As memórias SRAM costumam ser usadas em chips
de cache.
Hierarquia de Memória
A velocidade dos dispositivos de memória pode variar, de acordo com a tecnologia
utilizada em sua implantação. Infelizmente, quanto mais rápida a memória, maior seu custo, o
que impede que a memória primária seja integralmente implementada com módulos tão rápidos
quanto o processador. Existem também limitações de natureza tecnológica, especialmente o
consumo de energia e o calor emitido pela memória rápida.
Para impedir que a memória primária se torne um gargalo no desempenho do sistema,
uma hierarquia de memória é criada, em que diversas tecnologias de memória são associadas.
Os tipos de memória mais rápidos do computador são os registradores do CPU, que
servem desde armazenar endereços da instrução sendo executada ao armazenamento até
manipulação de dados para propósitos gerais. No entanto esse tipo de memória tem uma
capacidade de armazenamento baixíssima e um custo altíssimo.
A segunda mais rápida é a memória cache, que é tão veloz quanto o processador. A
memória cache é de tamanho limitado, e contém páginas que são lidas da memória principal. O
conceito de cache se aproveita do fenômeno da localidade espacial (que consiste em assumir
que normalmente quando um endereço de memória é acessado, os endereços vizinhos serão
acessados em seguida).
A memória principal é bem maior que a cache, normalmente entre algumas dezenas de
megabytes até alguns gigabytes. Ela é mais lenta que o processador, e pode se tornar um sério
impedimento ao desempenho do computador na ausência da memória cache, ou em algoritmos
em que não há localidade espacial.
1 – Bacharelando em Ciência da Computação; Universidade Federal de Pelotas. Contato: torate@gmail.com
2 – Bacharelando em Ciência da Computação; Universidade Federal de Pelotas - Tecnólogo em sistemas de telecomunicações;
Centro de educação Tecnológica de Pelotas. Contato: jeronimo.madruga@gmail.com
3 – Bacharelando em Ciência da Computação; Universidade federal de Pelotas. Contato: mateus.santos@gmail.com
4. -4-
Finalmente, a memória virtual é implementada na memória secundária. Embora seu
tamanho seja limitado apenas pela capacidade de endereçamento do processador (podendo
atingir vários gigabytes), ela chega a ser 1.000.000 de vezes mais lenta que a memória
principal. Para que o computador tenha um desempenho aceitável, é preciso que as
transferências de páginas entre a memória principal e a virtual sejam bastante raras, pois o
tempo perdido em uma dessas transferências seria suficiente para executar milhões de
instruções.
Esse pode ser descrito como um esquema simplificado da arquitetura de memória,
visto que nos computadores atuais já podemos encontrar diversos níveis de cache ou ainda
vários caches especializados.
Tecnologias de Implementação de memória
As principais tecnologias de implementação de memórias utilizadas atualmente são:
- Portas lógicas e flip-flops, usados na implementação da memória cache.
- Transistores e circuitos de refrescamento, usados na implementação da memória
principal.
- Arranjos de conexões, utilizados na implementação de certas ROMs.
- Fitas magnéticas, utilizadas principalmente para cópias de segurança e arquivamento
a longo prazo.
- Discos magnéticos, como discos rígidos e disquetes, a principal tecnologia de
implementação de memória secundária.
- Discos ópticos, como CDs e DVDs, e suas diversas variações.
- Memória flash, um tipo de memória semicondutora não volátil muito usada em
câmeras digitais, leitores de MP3 e na BIOS do pc.
Existem também tecnologias que foram usadas no passado, mas tornaram-se
obsoletas:
- Memórias de tecnologia delay line, uma das primeiras tecnologias de memória
principal, que armazenavam os dados na forma de pulsos sonoros em uma coluna de mercúrio.
- Memórias CRT, também chamadas de Williams-tube, um tipo de memória que usava
um tubo CRT para armazenar dados na forma de pontos luminosos.
- Memórias de núcleo de ferrite, uma tecnologia popular de implementação da memória
principal nas décadas de 1940 e 1950.
- Memórias de filme fino, uma melhoria da tecnologia de núcleo de ferrite, utilizada em
alguns computadores na década de 1960.
- Cartões e fitas perfuradas, que já foram os principais meios de memória não-volátil.
1 – Bacharelando em Ciência da Computação; Universidade Federal de Pelotas. Contato: torate@gmail.com
2 – Bacharelando em Ciência da Computação; Universidade Federal de Pelotas - Tecnólogo em sistemas de telecomunicações;
Centro de educação Tecnológica de Pelotas. Contato: jeronimo.madruga@gmail.com
3 – Bacharelando em Ciência da Computação; Universidade federal de Pelotas. Contato: mateus.santos@gmail.com
5. -5-
Funcionamento de uma memória
Apesar das diversas tecnologias que podem ser utilizadas para implementar uma
memória, o funcionamento lógico das memórias costuma não variar muito. Normalmente as
memórias são diversas células de memória interligadas entre si, visando obter a quantidade
necessária de memória para o sistema em questão. Essas várias células de memória serão
organizadas de uma forma semelhante a uma matriz, formando um sistema com linhas e
colunas.
Visto que nenhum sistema computadorizado tem a capacidade de ler todas as posições
de memória ao mesmo tempo, foi necessário a implementação de um sistema de endereços
para referenciar cada posição de memória individualmente. Esse sistema consiste em
endereçar uma célula de memória de acordo com a linha e a coluna em que ela se encontra,
possibilitam assim que cada célula de memória seja lida individualmente.
Normalmente para implementar esse tipo de estrutura, é necessário um decodificador
de endereços, um barramento de endereços, e uma estrutura de seleção que pode ser
implementada na célula de memória através de portas lógicas.
Além de ser necessário esse sistema para endereçar a memória, também é necessário
um sistema para verificar se a operação é de leitura ou escritura, que pode ser representado
simplesmente por um sinal de controle de leitura e uma estrutura de seleção de operação a ser
realizada, que é implementada na maioria das vezes utilizando algumas portas lógicas e um
buffer na saída da memória, o que também facilita para a criação de um barramento de dados,
visto que o buffer adiciona a opção do terceiro estado para a saída da memória.
Referências bibliográficas
http://eden.dei.uc.pt/~ctp/papers.htm
http://paginas.terra.com.br/servicos/monografiaabnt/metodologia.htm
http://pt.wikipedia.org/wiki/Computador
http://www.infowester.com/memddr.php
http://www.virtual.pucminas.br/CIETE/e0m0006b/informacao.htm
http://www.ufpel.edu.br/%7Eguntzel/AOC2/AOC2_aula12.pdf
http://computer.howstuffworks.com/computer-memory.htm
http://en.wikipedia.org/wiki/Computer_storage
Raul Fernando Weber, Fundamento de Arquitetura de Computadores.
David A. Patterson, et alli., Organização e Projeto de Computadores.
1 – Bacharelando em Ciência da Computação; Universidade Federal de Pelotas. Contato: torate@gmail.com
2 – Bacharelando em Ciência da Computação; Universidade Federal de Pelotas - Tecnólogo em sistemas de telecomunicações;
Centro de educação Tecnológica de Pelotas. Contato: jeronimo.madruga@gmail.com
3 – Bacharelando em Ciência da Computação; Universidade federal de Pelotas. Contato: mateus.santos@gmail.com