Você está na página 1de 10

Memória Secundária

Independente da quantidade de memória principal que o computador disponha, ela


nunca será suficiente para armazenar todos os dados que são necessários. Para
isso usam-se os meios de armazenamento de massa ou memória secundária.
Uma quantidade enorme de dados devem ser armazenados por longo prazo,
podendo ou não serem acessados enquanto a máquina estiver em funcionamento.
O dispositivo para armazenar tais dados funciona como uma memória de longo
prazo. É necessária uma memória com alta capacidade de armazenamento e
que seja não-volátil, ou seja, independente de uma fonte de alimentação para
continuar retendo os dados. O custo por bit também deve ser reduzido, para o
armazenamento de uma grande quantidade de informação ser economicamente
viável.

A tecnologia mais empregada em tal armazenamento são os discos


magnéticos, que atualmente compõem o disco rígido do computador.
O nome disco rígido foi dado para diferenciá-los dos discos flexíveis, ou
disquetes, comuns décadas atrás.

Para se ter uma idéia de ordem de grandeza, um computador comercial comum


atualmente possui cerca de 4 GB de memória principal ( DRAM ) enquanto que um
disco rígido comum hoje possui em torno de 1 TB.

Hierarquias de memória

No módulo anterior, foi explicado o que é memória cache. Ela é composta por
tecnologia SRAM conectada diretamente ao núcleo do processador pelo
barramento local do processador. Portanto, o seu tempo de acesso é menor do
que o da memória principal, que emprega tecnologia DRAM, e não é ligada
diretamente ao processador. A comunicação entre a memória principal e o
processador é realizada via memória cache. Um dado deve ser lido na memória
principal apenas quando não estiver disponível na cache. E, como a cache é mais
rápida, a probabilidade de o processador acessar um dado já presente na cache (
cache hit ) deve ser maior do que a probabilidade de o dado precisar ser buscado
na memória principal ( cache miss ). O princípio da localidade é uma boa heurística
para otimizar a probabilidade de acerto.

Apesar de mais lenta, a DRAM possui um custo por bit inferior à SRAM,
portanto a memória principal possui maior capacidade de
armazenamento do que a memória cache. Temos então o dilema entre
custo e desempenho resolvido da seguinte forma: memórias mais
rápidas e caras disponíveis em menor quantidade devem ter maior
probabilidade de acesso do que as memórias mais lentas e mais baratas.
Esse raciocínio é extendido para diversos tipos de memórias, como
mostrado na figura abaixo.

Um computador pode possuir diversos tipos de memória, desde os registradores


até os discos ópticos (DVD, Blu Ray, Flash, DRAM, SRAM, etc). Todas variando
em tempo de acesso, custo por bit, capacidade e volatilidade.
Como a natureza dos dados é diferente, e sua probabilidade de acesso
também, é definida uma pirâmide de hierarquia de memória, sendo
que, no topo localizam-se as memórias de menor capacidade e alto
custo por bit, porém mais velozes. Na base, as memórias de maior
capacidade e baixo custo por bit, porém mais lentas.

Hierarquia de memória de cinco níveis


Quanto mais alto vamos na pirâmide acima, maior é a velocidade da memória,
maior o custo por byte e menor a quantidade de memória disponível no
computador. Quanto mais para baixo vamos, menor a velocidade, menor o custo e
maior a quantidade disponível em um computador.

A maior parte dos meios de memória secundária atualmente é não volátil, ou seja,
mantém os dados gravados até que um usuário apague estes dados. Devemos ter
cuidado em usar o termo “permanente” ao se tratar de meios de armazenamento,
pois nenhum meio de armazenamento atual consegue garantir a preservação dos
dados após um período de alguns anos.

No topo da hierarquia encontram-se os registradores da CPU, que são


compostos por flip-flops e conectados diretamente aos circuitos digitais do
processador. Por serem parte do núcleo do processador, o seu tempo de acesso é
o mais baixo. E por serem parte dos circuitos do processador, são mais complexos
do que memórias comuns. Portanto o seu custo é alto ( quanto maior o número de
registradores no processador maior a complexidade e o custo ). Portanto os
registradores são tanto a memória mais rápida, quanto a mais cara, e a de menor
capacidade. Entretanto, a probabilidade de acesso aos registradores é de longe a
mais elevada. A maior parte das instruções do nível ISA manipulam dados nos
registradores, seja como operandos ou como resultados de instruções lógicas ou
artiméticas. E também nas instruções de movimento de dados. O principal
registrador da CPU é conhecido como acumulador. Nos processadores atuais,
todas as instruções que envolvem a ULA acessam o registrador acumulador.

Abaixo dos registradores encontra-se a memória cache, que já foi explicada


anteriormente. Ela é composta por tecnologia de memória estática, a mesma dos
registradores,, embora seus circuitos sejam mais simples que os registradores da
CPU. A cache é conectada diretamente ao processador via um barramento
local exclusivo. Nos computadores atuais, geralmente qualquer dado cujo destino
ou origem seja o processador, passa primeiro pela memória cache pelo
barramento local. Para o processador acessar dados na cache, deve ser por via
desse barramento, portanto o acesso à cache é mais lento do que o acesso aos
registradores. O custo da cache é inferior aos dos registradores da CPU porque
estes são mais complexos. Como já foi explicado anteriormente, a probabilidade
de acesso à cache deve ser elevada.

Abaixo da cache encontra-se a memória primária ou principal.Nos computadores


atuais a tecnlogia empregada nessa memória é a RAM dinâmica ou DRAM.
Quando alguém diz que um computador possui memória de 4 GB, é à memória
principal que está se referindo. Essa memória é mais lenta que a cache, embora
mais barata, e, portanto mais disponível. Nos computadores atuais a capacidade
da memória principal é da ordem de Gigabytes, enquanto a capacidade da
memória cache é da ordem de kilobytes.

Tanto os registradores, a memória cache e a principal são voláteis, isto é, só


funcionam mediante o fornecimento de energia.

Abaixo da memória principal encontra-se o armazenamento em


massa ou memória secundária. Enquanto as memória dos níveis superiores são
voláteis, os dispositivos que compõem a memória secundária são não-voláteis,
retendo os dados armazenados mesmo sem consumir energia. O fornecimento de
energia deve ser fornecido apenas quando os dados são gravados ou lidos.
Dispositivos de armazenamento são, por exemplo, o disco rígido ( HD - Hard
Disk ), a memória Flash ( pen drives e SSD ). O custo por bit é muito inferior ao
da memória principal, e portanto a capacidade de armanzenamento é maior.
Embora o tempo de acesso seja mais lento. No caso dos discos por exemplo, há a
necessidade de posicionamento mecânico do cabeçote de leitura. Os discos são o
último elemento mecânico ainda em uso nos computadores atuais. São mais
lentos justamente por serem mecânicos, e não puramente eletrônicos. Já a
memória Flash é eletrônica, porém para gravar um único dado, é necessário
apagar e reescrever um bloco inteiro. Bem como o fato de o armazenamento
permanente em estado sólido ser mais lento do que alterar o valor de bits em
memórias voláteis. A memória secundária está disponível em maior capacidade de
armazenamento, mas é mais lenta. Portanto, a probabilidade de acesso a um dado
presente nessa memória deve ser menor do que nas memórias dos níveis
superiores da hierarquia.

Discos magnéticos
O disco magnético é o meio mais comum de armazenamento atualmente. Isso se
deve ao fato de que o disco hoje é o que fornece melhor relação custo benefício.

Isto talvez mude no futuro próximo, graças à popularização dos discos de estado
sólido (SSD – Solid State Disk) baseados em memória flash. Ainda possuem
pouca capacidade se comparados aos terabytes que um disco magnético possui,
mas com o aumento de capacidade e barateamento destes tipos de dispositivo,
em breve ele poderá superar o disco magnético em popularidade.

Um disco magnético sem a proteção metálica

Como podemos ver na imagem acima, o disco magnético é composto por discos e
braços de acesso, além de motores responsáveis por girar os discos e movimentar
o braço de acesso.

O princípio básico de funcionamento do disco magnético é simples: os discos


giram um único sentido em velocidade constante, e as cabeças de leitura e
gravação se aproximam e afastam do centro do disco, de modo que eles
conseguem atingir toda a área útil do disco.

Área esta que é coberta por um material magnético que é pode ser sensibilizado
pelo campo gerado pela cabeça de leitura. Dependendo da direção em que
estiverem direcionadas estas partículas, elas podem simbolizar um bit 0 ou um bit
1.

A área útil do disco é dividida em setores. Um setor normalmente corresponde a


512bytes é separado do próximo setor por uma área não utilizada chamada
lacuna. Como estamos lidando com campos magnéticos, nem toda a superfície
pode ser utilizada, pois corremos o risco de afetar outros setores além do
desejado, se eles estiverem muito próximos. Os setores são agrupados em
círculos concêntricos denominados trilhas.
Representação da geometria do disco magnético

Além de trilhas e setores, o outro conceito importante na geometria do disco


magnético é o cilindro. Um disco magnético normalmente é composto por vários
discos, denominados platters.

Cada superfície de cada disco possui uma cabeça de leitura e gravação própria.
Como todos os braços de todas as cabeças de leitura e gravação se movimentam
ao mesmo tempo, quando a cabeça de leitura da primeira superfície estiver sobre
a trilha n, todas as cabeças de leitura estarão sobre as trilhas n de suas
respectivas superfícies.

A este conjunto de trilhas que pode acessada sem que seja necessário
movimentar a cabeça de leitura e gravação se dá o nome de cilindro.

Este é um conceito importante quando se tenta aumentar o desempenho de


discos, pois por se tratar de um dispositivo mecânico, o tempo que a cabeça de
leitura leva para se mover pela superfície do disco é extremamente lento.

Se um determinado conjunto de dados estiver num mesmo cilindro, o tempo de


acesso a estes dados será menor.

Conjuntos de caracteres
É claro que os computadores têm que lidar com todo tipo de informações, e não
apenas números, mas como veremos na seção sobre circuitos digitais, o
computador só consegue de fato lidar com valores binários.
A solução para permitir que os computadores consigam lidar com informações não
numéricas é a criação de tabelas de conversão. Estas tabelas são chamadas de
conjuntos de caracteres.

Um dos padrões mais conhecidos é o ASCII (American Standard Code for


Information Interchange – código padrão americano para intercâmbio de
informações).

O ASCII usa sete bits para descrever os caracteres, o que permite 128
combinações.

Parte do padrão ASCII

Conforme podemos perceber, este padrão é bastante limitado, ele contém apenas
os caracteres da língua inglesa, não contém os acentos necessários par ao
português e nem podemos começar a pensar nos idiomas que usam alfabetos
diferentes como o russo ou o árabe.

Como os computadores hoje são usados em todo mundo e fabricantes desejam


que seus produtos sejam usados globalmente, o ASCII não pode mais ser
considerado como um padrão aceitável.

Por este motivo, foi criado outro padrão, chamado UNICODE, patrocinado por um
grupo de empresas. O UNICODE usa 16 bits para descrever cada caractere, o que
permite até 65.536 caracteres diferentes.

Mesmo essa quantidade é insuficiente para abarcar todos os idiomas falados na


Terra. Lingüistas estimam que seriam necessários cerca de 200.000 caracteres
para suportar todos os idiomas falados atualmente.

O padrão UNICODE hoje cobre cerca de 75 alfabetos. Além dos caracteres latinos,
são suportados cirílico, grego, armênio, hebraico, devanágari, gurmuqui, oriá,
telugu e kanada, entre outros.

Barramento: caminho elétrico comum que interliga diversos dispositivos. Podem


ser usados dentro do próprio processador para transferir dados de/para a ULA ou
fora dele para conectá-lo à memória ou à dispositivos de E/S ( Entrada/Saída - I/O
- Input/Output ). Computadores modernos possuem, em geral, um barramento
proprietário ligando o processador à memória e, no mínimo, outro de E/S.

Os barramentos de E/S geralmente são abertos, para possibilitar


compatibilidade com o maior número possível de periféricos. Exemplos são os
barramentos IDE, SATA, SCSI, SA, PCI, PCI-Express, FireWire, USB, etc.

Naturalmente, cada tipo de barramento possui um protocolo de comunicação e


de arbitragem, necessários para que todos os dispositivos conectados a um
mesmo barramento comuniquem-se usando a mesma "linguagem", e minimizando
a probabilidade de confitos.

Se temos diversos dispositivos em um sistema computacional, e todos com


capacidade de comunicação com o processador e/ou com a memória, imagine
como um computador seria complexo caso houvesse um condutor elétrico para
cada sinal! É economicamente inviável que todos os dispositivos tenham vias de
comunicação separadas. Portanto, um dado barramento tende a ser
compartilhado por diversos dispositivos conectados a ele.

Todos os barramentos possuem três tipos de sinais:


- Sinais de Controle: Como o nome já diz, esses sinais controlam o fluxo de
dados no barramento. Por exemplo, a direção do fluxo de dados. Num dado
momento um dispositivo pode estar lendo dados presentes no barramento, em
outro momento, esse mesmo dispositivo pode estar enviando dados para a
memória ou para um outro dispositivo. Portanto, é necessário haver um sinal que
informa se o periférico funciona como entrada ou saída de dados. No caso de
comunicação síncrona, há um sinal de clock, que nada mais é do que um sinal de
onda quadrada que define a taxa de transmissão de dados. No caso de
comunicação assíncrona, faz-se necessário o envio de sinais para iniciar ou
finalizar a comunicação, bem como sinais de sincronismo, para que os
componentes em comunicação funcionem sincronizados, isto é, com a
mesma velocidade. Para melhorar a confiabilidade do sistema de comunicação,
existem sinais de dispositivo pronto para enviar ou receber dados ( Ready ), e
sinais de reconhecimento ( Ack - acknowledge ), sinais de leitura/escrita (
Write/Read ), sinais para seleção de um determinado microchip ( Chip Select ) e
outros.

- Sinais de Endereço: Servem para selecionar um dado na memória.


Entretanto, pode haver o caso de E/S mapeada na memória ( Memory Mapped I/O
) em que um dado é escrito em um endereço que não existe na memória física,
sendo na realidade lido ou escrito em um dispositivo. Porque, ao invés de o
endereço enviado selecionar um endereço presente na memória, seleciona o
dispositivo em questão.

- Sinais de Dados: Correspondem à informação que realmente interessa. Os


bits correspondentes aos caracteres digitados no teclado, aos pixels que aparecem
no monitor ou números calculados em um programa de planilha por exemplo, são
dados codificados na forma binária, que trafegram pelas vias de dados dos
barramentos.

Muitas vezes, uma mesma via do barramento pode transportar mais de um


tipo de sinal. Nesse caso, há uma multiplexação no tempo. Dados e endereços por
exemplo, podem ser multiplexados. Em um momento, trafegam os sinais de
endereço, e depois, os dados são enviados, pelas mesmas vias de comunicação.

A comunicação pode ser serial ou paralela. No caso da serial, os dados são


enviados em sequência por uma única via. No caso da comunicação paralela,
existem vias separadas para cada sinal. A princípio poderíamos dizer que a
transferência de dados na comunicação paralela é mais rápida, pois existe uma
maior quantidade de "canais", que funcionam em paralelo. Por exemplo, se temos
8 vias de dados, e desejamos enviar 8 bits é necessário um único ciclo para a
comunicação paralela. No caso da comunicação serial são necessários 8 ciclos.
Entretanto, para altas taxas de transmissão, a comunicação paralela acaba
perdendo. Pois uma grande quantidade de fios próximos uns dos outros provocam
interferência eletromagnética um com ou outro, o que limita uma taxa de
transmissão confiável. Além do fato de que a comunicação paralela tende a ocupar
mais espaço ( flat cables e conectores largos ). Portanto, a tendência atual é a de
a comunicação serial cada vez mais tomar o lugar da paralela. As impressorar
antigas, por exemplo, usavam a porta paralela do PC, as atuais são conectadas à
porta USB ( USB é a sigla de Universal Serial Bus - ou Barramento Serial
Universal ). Os HDs IDE estão também sendo substituídos pelos SATA ( Serial
ATA ).
Os aspectos principais a considerar no projeto de uma barramento são: largura
do barramento, metodologia de temporização do barramento, arbitragem do
barramento e as possíveis operações a serem realizadas pelo barramento.

Você também pode gostar