Logo Passei Direto

A maior rede de estudos do Brasil

Grátis
8 pág.
Memória

Pré-visualização | Página 1 de 2

Memória
O que é memória?
	É o componente dentro da arquitetura e organização do computador com a função de armazenar os programas e os dados eu serão manipulados pelo sistema operacional dentro dos ciclos de instrução. A memória não pode ser considerada um componente único, mas sim um subsistema. Para o perfeito funcionamento otimizado do computador, vários tipos de memória são envolvidos a fim de compensar a velocidade da CPU, que é sempre superior à da velocidade da memória. Caso dentro do sistema de computação existisse somente um tipo de memória, para que o processamento fosse aceitável, sua velocidade teria que ser compatível à velocidade da CPU. Isso inviabilizaria a construção da máquina, pois, com esta velocidade e com alta capacidade de armazenamento, a tecnologia utilizada seria de alto custo e não acessível ao mercado. 
Velocidade de processamento
	Para ficar mais clara a diferença de velocidade de processamento, vamos falar dos números. Dentro da CPU, um dado é processado em aproximadamente 5 nanossegundos (5 bilionésimos de segundo), ao contrário do processamento da memória principal (memória RAM) que leva aproximadamente 60 nanossegundos. Tudo que está sendo processado fica armazenado na memória RAM e é requisitado pela CPU, quando a CPU recebe este conteúdo e processa em 5ns, a CPU fica mais 55ns ociosa aguardando o envio de uma nova informação por parte da memória principal. Por esse e por outros motivos, surgiram outras memórias que auxiliam nesta compensação. 
Memória primária X secundária
	Para entender a diferença dessas divisões, é importante conhecer o conceito de volatilidade. Uma memória é volátil quando ela perde o conteúdo, quando não há alimentação de energia. Resumindo, se o equipamento é desligado, seu conteúdo é perdido. Abaixo, temos umas definições:
· Memória primária
	São componentes que fornecem dados e instruções para o uso imediato, sendo voláteis. Basicamente, é formada pelos seguintes componentes: registradores, memória cache e memória principal.
· Memóra secundária
	São os componentes que provêm capacidade de armazenamento permanente (não voláteis). Exemplos: discos rígidos, discos óticos (CD, DVD etc.) e fitas.
	Assim, podemos considerar como hierarquia de memória a estrutura apresentada a seguir:
Registradores
	Quando estudamos o ciclo de instrução, ou ciclo de busca-decodificação e execução, verificamos a presença de registradores, que são dispositivos de armazenamento temporário, localizados na CPU, utilizados constantemente dentro do processo de execução das instruções. Por serem usados na CPU, entende-se que são memórias muito rápidas. Na verdade, são consideradas as memórias mais rápidas existentes no sistema de computação. Porém, como seu objetivo é o armazenamento do conteúdo de memória a ser processado pela CPU, sua capacidade de armazenamento se limita à palavra daquele processador, normalmente variando de 8 a 64 Bits. Mesmo sendo de baixa capacidade de armazenamento, os registradores são sempre construídos internamente no chip do processador. O que faz com que sua tecnologia de construção seja cara e não permita o uso de muitos registradores. Contudo, isso permite que seu tempo de acesso seja compatível com a velocidade da CPU, entre 1 e 5 nanossegundos. O conceito de registrador surgiu na necessidade da CPU armazenar temporariamente dados que serão usados em seu processamento. 
	Por estarem dentro da CPU, entende-se que os registradores são voláteis, isto é, precisam ser alimentados constantemente pela energia elétrica para manter o conteúdo armazenado.
Memória Cache
	A CPU trabalha diretamente com a memória RAM. Sendo assim, todos os dados processados são recebidos dos módulos de memória RAM, para, dessa forma, serem decodificados e executados. Porém, o desenvolvimento constante na tecnologia de construção de processadores, a sua velocidade foi ficando cada vez maior quando comparada à velocidade foi ficando cada vez maior quando comparada à velocidade de transmissão da memória principal (não acompanhou da mesma forma que a evolução em velocidade, mas sim em capacidade de armazenamento). Com isso, surgiu um desequilíbrio entre a comunicação da CPU e a memória principal, de forma que a CPU processa dados mais rápido do que a memória RAM poderia enviar, resultando em longos períodos de ociosidade ou estados de espera (“wait states”) devido ao gargalo (“bottleneck”) criado por este desequilíbrio, o que logicamente resulta em um desperdício da capacidade de processamento da CPU. Por esse fato e também porque os registradores possuem alta velocidade mas baixa capacidade de armazenamento, foi necessário, dentro da hierarquia da memória, criar uma nova “camada” que possibilitasse a CPU usar melhor toda a sua capacidade de processamento: a memória cache.
	Portanto, a cache é uma memória criada justamente para diminuir os “estados de espera” entre CPU e memória principal, sendo muito mais rápida do que a memória RAM e com mais capacidade do que os registradores. Ela tem função de armazenar temporariamente conteúdos muito requisitados e fornecer as informações para a CPU de forma mais ágil, evitando que a memória principal tenha que ser consultada a todo momento, reduzindo a ociosidade da CPU.
	Certamente, o custo da memória cache é maior do que a da principal e menor do que o custo de registradores, o que justifica parte da solução encontrada. No entanto, o custo de fabricação da memória cache é muito maior do que o da principal, não justificando a extinção da principal, ou seja, não seria viável economicamente construir um computador somente com tecnologia de memória cache. A partir dos processadores 386, surgiu a inclusão de memória cache, localizada entre a CPU e a principal, e que funcionária como um espelho de parte do conteúdo dessa memória principal. Exemplo das primeiras placas-mãe lançadas com memória cache, localizada na própria placa-mãe. 
Princípio de localidade
	O funcionamento da memória cache se faz da seguinte forma: todo conteúdo consultado com mais frequencia na memória principal é mantido de forma espelhada na memória cache, ou seja, este conteúdo não é apagado na memória principal, somente espelhado. Esse conteúdo consultado com frequência é verificado pelo princípio da localidade. Por esse princípio, se um endereço, por exemplo, na memória principal, foi requisitado pela CPU, é bem provável que um endereço próximo ou vizinho a este seja o próximo a ser consultado pela CPU na memória principal. Dessa forma, antecipa-se não somente o conteúdo solicitado pela CPU, mas também o conteúdo solicitado pela CPU, mas também o conteúdo dos endereços próximos a esta localidade são espelhados da memória principal para a cache, de modo que, em uma próxima vez que for efetuada uma consulta por parte da CPU, este conteúdo possa ser acessado diretamente pela cache, otimizando o tempo de processamento. 
Tipos de princípio de localidade
· Princípio de localidade temporal: baseia-se no fato de que um dado acessado recentemente tem mais chances de ser usado novamente do que um dado usado há mais tempo. Isso é uma realidade pois, quando um programa está em execução, uma variável pode ser consultada diversas vezes durante seu processamento, por exemplo, se houver uma rotina de loop ou sub-rotinas. Sendo assim, o principio de localidade temporal tende a manter os dados e instruções recentemente acessados.
· Principio de localidade espacial: há uma grande probabilidade de acesso para dados e instruções em endereços próximos aqueles acessados recentemente pela CPU. Durante a execução de um programa, normalmente as variáveis são criadas e armazenadas nas próximas umas as outras, dentro da memória principal. 
O conteúdo estará disponível na memória cache de imediato?
	Logicamente, nem sempre, em uma consulta efetuada pela CPU, o conteúdo estará disponível na memória cache de imediato. Sendo assim, existem duas possibilidades:
· Se a CPU busca um determinado dado e o encontra na cache, dá-se o que chamamos de cache hit, ou seja, conteúdo é localizado
Página12