
MEMÓRIA
Componente de um sistema de computação cuja função é armazenar as informações que são (ou serão) manipuladas por esse sistema, para que elas (as informações) possam ser prontamente recuperadas quando necessário. Na prática, em um sistema de computação não é possível construir e utilizar apenas um tipo de memória. A memória de um computador é constituída de vários componentes (vários tipos diferentes de memória) interligados e integrados. Isto é feito em virtude de:
Velocidade da CPU muito maior que o tempo de acesso da memória. Isto ocasiona atrasos na transferência de bits entre memória e CPU e vice-versa.
Necessidade de aumento da capacidade de armazenamento, em face do aumento do tamanho dos programas.
Em suma, os fatores, velocidade e capacidade, indicam a necessidade de se projetar não um único tipo de memória (com elevada velocidade e grande capacidade, mas de custo altíssimo), mas sim um conjunto de memórias com características diferentes.
A memória de um sistema de computador tem a função de armazenar dados e instruções e é organizada em posições, que podem ser visualizadas como elementos em uma matriz. Cada elemento tem um endereço. Assim, pode-se falar de uma memória que tenha x posições: cada posição pode ser referenciada diretamente de acordo com a sua colocação na seqüência. Por exemplo, se uma memória tem 4096 posições, existem posições de memória 0, 1, 2, 3,...., 4094 e 4095. Quando um destes números aparece nos circuitos de controle conectados à memória, o conteúdo (o valor que está na posição) será trazido da memória para os circuitos da unidade de processamento ou a informação na unidade de processamento será armazenada na memória, dependendo do trabalho associado com o endereço.
A menor quantidade de informação disponível em qualquer computador é o bit. A principal unidade de informação é um grupo de bits, denominado palavra. O número de bits que formam uma palavra é denominado tamanho da palavra do computador. Muitas vezes os computadores são descritos em termos do tamanho da sua palavra, que também indica a largura do barramento de dados. Uma palavra armazenada numa posição de memória pode conter dois tipos de informação: instruções ou dados. Para as instruções, armazenadas em código binário, o conteúdo armazenado na memória são comandos que levam à execução de alguma tarefa. Os dados podem ser informações numéricas ou alfanuméricas, que podem estar em vários formatos: números binários com e sem sinal, números em BCD compactado, números em ponto flutuante, caracteres em BCD ou ASCII. Apesar de existirem diversos formatos lógicos de armazenamento para dados, não se deve esquecer que, fisicamente, informações são armazenadas como seqüências de 0 e 1 e que, mais importante ainda, o computador não tem como saber a diferença entre dois conteúdos. É responsabilidade do programador conhecer os tipos de dados que estão sendo armazenados, para assegurar que o programa possa interpretá-los e processá-los corretamente.
Endereço e locação de memória: O endereço é um número que identifica a posição (locação) de uma palavra na memória. Cada palavra armazenada em qualquer dispositivo ou sistema de memória possui um único endereço, expresso como números binários ou, por conveniência, hexadecimais. Cada locação de memória possui um endereço associado, onde estão presentes os dados a serem acessados.
Operação de leitura: Ao ler o conteúdo de um endereço, o computador faz uma cópia do conteúdo. Dessa forma, a operação de leitura é chamada de não destrutiva (operação de busca).
Operação de escrita: Quando o computador acessa uma posição de memória e escreve um dado, o conteúdo anterior é completamente perdido. Assim, toda operação de escrita pode ser chamada de destrutiva (operação de armazenamento).
Tempo de acesso: Medida da velocidade do dispositivo de memória. Quantidade de tempo necessária à efetivação de uma operação de leitura (tempo decorrido entre o momento da recepção pela memória de um novo endereço e o instante em que a informação daquele endereço fica disponível).
Memória volátil: Memória que necessita de energia elétrica para reter a informação armazenada. Se a energia for retirada, toda a informação armazenada será perdida.
Memória não-volátil: Memória que não necessita de energia elétrica para reter a informação armazenada.
ROM (read only memory) – memória apenas para leitura: São memórias a semicondutor usadas para armazenar dados e instruções permanentes, que o computador deve executar freqüentemente ou durante a inicialização do sistema. Normalmente o conteúdo de uma ROM é gravado no circuito integrado, não podendo ser alterado (não voláteis). Aplicações: firmware, memória de partida fria (bootstrap), tabelas de dados, conversores de dados, geradores de caracteres e de funções. A principal característica da memória ROM é o fato de que suas informações vêm geralmente gravadas de fábrica e são, portanto utilizadas durante toda sua vida útil para as mesmas atividades.
Os diversos tipos de ROMs existentes no mercado diferem no modo de programação e na possibilidade de apagamento e de reprogramação. Algumas variações da ROM são:
PROM - Programmable Read Only Memory ou memória apenas de leitura, programável. Esta memória é uma ROM programável (em condições e com máquinas adequadas, chamadas queimadores de PROM) e geralmente é comprada "virgem" (sem nada gravado), sendo muito utilizada no processo de testar programas no lugar da ROM, ou sempre que se queira produzir ROM em quantidades pequenas. Uma vez programada (em fábrica ou não), não pode mais ser alterada.
EPROM - Erasable Programmable Read Only Memory ou memória apenas de leitura, programável (com queimadores de PROM) e apagável (com máquinas adequadas, à base de raios ultra-violeta). Esta memória é uma PROM apagável. Tem utilização semelhante à da PROM, para testar programas no lugar da ROM, ou sempre que se queira produzir ROM em quantidades pequenas, com a vantagem de poder ser apagada e reutilizada.
EEPROM (ou E2PROM) - Electrically Erasable Programmable Read Only Memory ou memória apenas de leitura, programável e eletronicamente alterável. Também chamada EAROM (Electrically Alterable ROM). Esta memória é uma EPROM apagável por processo eletrônico, sob controle da UCP, com equipamento e programas adequados. É mais cara e é geralmente utilizada em dispositivos aos quais se deseja permitir a alteração, via modem, possibilitando a carga de novas versões de programas à distância ou então para possibilitar a reprogramação dinâmica de funções específicas de um determinado programa, geralmente relativo ao hardware (p.ex., a reconfiguração de teclado ou de modem, programação de um terminal, etc).
RAM (random access memory) – memória de acesso aleatório: São memórias de leitura e escrita, usadas para o armazenamento temporário de dados. As memórias RAM são voláteis. Nas memórias RAM, a localização física real de uma palavra não tem efeito sobre o tempo de leitura ou escrita (o tempo de acesso é constante para qualquer endereço). Aplicação: memória principal e caches.
Entre os principais tipos de RAM temos:
DRAM (dinamic random access memory) – RAM dinâmica: Memórias RAM a semicondutor nas quais a informação armazenada não permanecerá armazenada, mesmo em presença de alimentação do circuito, a não ser que a informação seja reescrita na memória com determinada freqüência (operação de recarga ou refresh da memória). Características: alta capacidade de armazenamento, baixo consumo de potência, velocidade de operação moderada e custo/byte relativamente baixo. Principal tecnologia de implementação de memórias RAM, constituindo-se na representação de números binários 0 e 1 a partir do carregamento de milhares ou milhões de microcapacitores reenergizados pela passagem de correntes pelas células a cada dezena de milissegundos.
SRAM (static random access memory) – RAM estática: Memórias RAM nas quais a informação permanecerá armazenada enquanto houver energia elétrica aplicada à memória, sem que haja necessidade da informação ser permanentemente reescrita na memória. Características: baixa capacidade de armazenamento, alta velocidade de operação (baixo tempo de acesso) e alto custo/byte. A principal limitação da DRAM, a velocidade, é a principal vantagem da SRAM. Estima-se que o tempo de acesso aos dados na SRAM sejam cerca 25% do tempo de acesso a DRAMs. Uma outra vantagem diz respeito a desnecessidade de reenergização. No entanto, uma grande limitação é decorrente de seu alto custo, o que faz com que esta tecnologia seja usada mais comumente em estruturas cache. Utilizam flip-flops (bipolares ou MOS) como células de armazenamento.
Memórias de acesso seqüencial (SAM): Utilizam registradores de deslocamento para armazenar os dados que podem ser acessados de forma seqüencial, não podendo ser utilizadas na memória principal (baixa velocidade de acesso). Aplicações: armazenamento e transmissão seqüencial de dados codificados em ASCII, osciloscópios digitais e analisadores lógicos, memórias FIFO.
Memórias FIFO (first in first out) – primeiro a entrar, primeiro a sair: Memória seqüencial que utiliza registradores de deslocamento, na qual as palavras são descarregadas na saída de dados na mesma ordem em que entraram pela entrada de dados. Aplicação: operação de transferência de dados entre sistemas operando em velocidades muito diferentes (buffers de impressora ou teclado).
Hierarquia de memória: a hierarquia de memória de um computador é caracterizada por cinco parâmetros: tempo de acesso, tamanho da memória, custo por byte, largura de banda (bandwidth) da transferência e unidade de transferência (bytes). A hierarquia de memória em microcomputadores possui quatro níveis, compostos de: memória secundária, memória principal, caches e registradores.
Memória secundária ou de massa ou auxiliar: Armazena uma grande quantidade de informação, sendo bem mais lenta que a memória principal, e sempre é não-volátil. As informações armazenadas nos dispositivos de memória de massa são transferidas para a memória principal quando forem necessárias ao computador. Exemplos deste tipo de elemento são as fitas magnéticas, os disquetes e os HDs (hard disks).
Memória principal ou primária: Serve para armazenar as instruções e os dados que estão sendo usados pelo processador. Implementada por chips de memórias DRAM. Controlada por uma MMU (memory manegement unit – unidade de gerência de memória) em cooperação com o sistema operacional.
Memória cache: Formada por uma pequena quantidade de memória SRAM, com alta velocidade de acesso. Armazena dados com grande probabilidade de reutilização, evitando outros acessos à memória principal, diminuindo o tempo de acesso ao dado. Existem dois tipos de memória cache, dependendo da localização em relação ao microprocessador: cache interna ou primária ou L1 (com pequena capacidade, geralmente de 32 kbytes), e cache "externa" (integrada) ou secundária ou L2 (com capacidade média de 256 a 512 kbytes).
Registradores: São dispositivos de armazenamento temporário, localizados na UCP, extremamente rápidos, com capacidade para apenas um dado (uma palavra). Devido a sua tecnologia de construção e por estar localizado como parte da própria pastilha ("chip") da UCP, é muito caro. O conceito de registrador surgiu da necessidade da UCP de armazenar temporariamente dados intermediários durante um processamento. Por exemplo, quando um dado resultado de operação precisa ser armazenado até que o resultado de uma busca da memória esteja disponível para com ele realizar uma nova operação.
Memória Virtual: É um percentual do disco rígido, reservado para operações do sistema operacional. Ela é criada, administrada e utilizada pelo Sistema Operacional, particularmente o Windows em todas as suas versões. As informações nela manipuladas, ficam armazenadas em um tipo de arquivo, chamado ARQUIVO DE PAGINAÇÃO. Tanto este arquivo com o tamanho desta memória VIRTUAL, podem ser alterados / verificados, através do Painel de Controle do Windows.
Tipo Capacidade Velocidade Custo Localização Volatilidade
Registrador Bytes muito alta muito alto UCP Volátil
Memória Cache Kbytes alta alto UCP/placa Volátil
Memória Principal Mbytes Média médio Placa Volátil
Memória Auxiliar Gbytes Baixa baixo Externa Não Volátil
A UCP vê nesta ordem e acessa primeiro a que está mais próxima. Subindo na hierarquia, quanto mais próximo da UCP, maior velocidade, maior custo, porém menor capacidade de armazenamento.
Memória Principal
Conforme foi definido anteriormente, Memória Principal é a parte do computador onde programas e dados são armazenados para processamento. A informação permanece na memória principal apenas enquanto for necessário para seu emprego pela UCP, sendo então a área de MP ocupada pela informação pode ser liberada para ser posteriormente sobregravada por outra informação. Quem controla a utilização da memória principal é o Sistema Operacional.
Estrutura da Memória Principal – Células e Endereços:
A memória precisa ter uma organização que permita ao computador guardar e recuperar informações quando necessário. Não teria nenhum sentido armazenar informações que não fosse possível recuperar depois. Portanto, não basta transferir informações para a memória. É preciso ter como encontrar essa informação mais tarde, quando ela for necessária, e para isso é preciso haver um mecanismo que registre exatamente onde a informação foi armazenada.
Célula: é a unidade de armazenamento do computador. A memória principal é organizada em células. Célula é a menor unidade da memória que pode ser endereçada (não é possível buscar uma "parte" da célula) e tem um tamanho fixo (para cada máquina). As memórias são compostas de um determinado número de células ou posições. Cada célula é composta de um determinado número de bits. Todas as células de um dado computador têm o mesmo tamanho, isto é, todas as células daquele computador terão o mesmo número de bits. Cada célula é identificada por um endereço único, pela qual é referenciada pelo sistema e pelos programas. As células são numeradas seqüencialmente, uma a uma, de 0 a (N-1), chamado o endereço da célula.
Endereço: é o localizador da célula, que permite identificar univocamente uma célula. Assim, cada célula pode ser identificada pelo seu endereço.
Unidade de transferência é a quantidade de bits que é transferida da memória em uma única operação de leitura ou transferida para a memória em uma única operação de escrita. O tamanho da célula poderia ser igual ao da palavra, e também à unidade de transferência, porém por razões técnicas e de custo, são freqüentemente diferentes.
OBS.: Uma célula não significa o mesmo que uma palavra; uma célula não necessariamente contém uma palavra.
Palavra: é a unidade de processamento da UCP. Uma palavra deve representar um dado ou uma instrução, que poderia ser processada, armazenada ou transferida em uma única operação. No entanto, em geral não é assim que acontece e os computadores comerciais não seguem um padrão único para a organização da UCP e MP. Computadores comerciais (tais como por exemplo, os baseados nos processadores Intel 486) podem ter o tamanho da palavra definido como de 32 bits, porém sua estrutura de memória tem células de 16 bits.
A estrutura da memória principal é um problema do projeto de hardware:
- mais endereços com células menores ou
- menos endereços com células maiores?
- O tamanho mais comum de célula era 8 bits (1 byte); hoje já são comuns células contendo vários bytes.
Nenhum comentário:
Postar um comentário