Organização e Hierarquia da Memória em Computadores
Classificado em Computação
Escrito em em português com um tamanho de 14,13 KB.
Prof. Me. Newton Carlos Will [email protected] – coens.dv.utfpr.edu.br
Introdução
- A memória é a parte do computador onde são armazenados programas e dados.
- Sem uma memória da qual os processadores possam ler e na qual possam gravar informações, não haveria computadores digitais com programas armazenados.
Hierarquia de Memória (1/3)
- A solução tradicional para armazenar grandes quantidades de dados é uma hierarquia de memória.
Componentes da Hierarquia
- Registradores
- Cache
- Memória principal
- Disco magnético
- Fita
- Disco óptico
Hierarquia de Memória (2/3)
- À medida que descemos na hierarquia, três parâmetros aumentam:
- O tempo de acesso fica maior.
- Os registradores da CPU podem ser acessados em alguns nanossegundos.
- Memórias cache demoram um pequeno múltiplo dos registradores de CPU.
- Acessos à memória principal normalmente levam algumas dezenas de nanossegundos.
- Tempos de acesso a discos são no mínimo 10 milissegundos.
Hierarquia de Memória (3/3)
- A capacidade de armazenamento aumenta:
- Registradores de CPU são bons para alguns bytes.
- Memórias cache para alguns poucos megabytes.
- Memórias principais para alguns gigabytes.
- Discos magnéticos para alguns terabytes.
- O número de bits por dólar gasto também aumenta.
- Quanto mais descemos na hierarquia, o valor do bit diminui.
Tipos de Memória (1/2)
- O elemento básico de uma memória semicondutora é a célula de memória.
- Embora diversas tecnologias eletrônicas sejam utilizadas, todas as células de memória semicondutora compartilham certas propriedades:
- Apresentam dois estados estáveis (ou semiestáveis), que podem ser usados para representar o binário 1 e 0.
- São capazes de ser escritas (pelo menos uma vez), para definir o estado.
- São capazes de ser lidas, para verificar o estado.
Tipos de Memória (2/2)
- Todos os tipos de memória que veremos são de acesso aleatório.
- Ou seja, palavras (conjunto de bytes) individuais da memória são acessadas diretamente por meio da lógica de endereçamento interna.
Memória Cache (1/7)
- Historicamente, as CPUs sempre foram mais rápidas que as memórias.
- Conforme as memórias melhoraram, as CPUs também melhoraram, mantendo o desequilíbrio.
- Na prática, o significado desse desequilíbrio é que, após emitir uma requisição de memória, a CPU não obterá a palavra de que necessita por muitos ciclos de CPU.
- Quanto mais lenta a memória, mais ciclos a CPU terá de esperar.
Memória Cache (2/7)
- O problema não é tecnológico, mas econômico.
- Os engenheiros sabem como construir memórias tão rápidas quanto as CPUs, mas para que executem a toda velocidade, elas têm de estar localizadas no chip da CPU.
- Instalar uma memória grande no chip da CPU faz com que esta fique maior e, portanto, mais cara.
- Assim, a opção se resume a ter uma pequena quantidade de memória rápida ou uma grande quantidade de memória lenta.
Memória Cache (3/7)
- O interessante é que há técnicas conhecidas para combinar uma pequena quantidade de memória rápida com uma grande quantidade de memória lenta para obter (quase) a velocidade da memória rápida e a capacidade da memória grande a um preço moderado.
- A memória pequena e rápida é denominada cache.
Memória Cache (4/7)
- A ideia básica de uma cache é simples:
- As palavras de memória usadas com mais frequência são mantidas na cache.
- Quando o processador solicita um item de dado gerando uma referência para seu endereço, que pode ser físico ou virtual, o gerenciador de memória requisita este item do cache.
Memória Cache (5/7)
- Duas situações podem ocorrer:
- cache hit: o item está presente no cache, é retornado para o processador praticamente sem período de latência.
- cache miss: o item não está presente no cache e o processador deve aguardar o item ser buscado da memória principal.
Memória Cache (6/7)
- O chamado princípio da localidade está por trás da maneira como os programas operam.
- Este princípio estabelece que os programas acessem uma parte relativamente pequena do seu espaço de endereçamento em um instante qualquer.
- Existem dois diferentes tipos de localidade:
- Localidade temporal: se um item é referenciado, ele tende a ser referenciado novamente dentro de um curto espaço de tempo.
- Localidade espacial: se um item é referenciado, itens cujos endereços sejam próximos a eles tendem a ser logo referenciados.
Memória Cache (7/7)
- Para que haja aumento de desempenho, com a inclusão da memória cache, é necessário que exista mais acertos do que faltas.
- Isto implica no dimensionamento adequado da memória cache como um todo.
Memórias Voláteis (1/9)
- O tipo de memória mais comum que permite leitura e escrita são as memórias RAM (Random Access Memories).
- É um nome suspeito porque todos os chips de memória têm acesso aleatório.
- RAMs podem ter duas variedades, estáticas e dinâmicas.
Memórias Voláteis (2/9)
- Nas estáticas (Static RAM – SRAM) é um dispositivo que, para armazenar informação, usa os mesmos elementos lógicos usados no processador.
- Uma das propriedades dessas memórias é que seus conteúdos são conservados enquanto houver fornecimento de energia.
- As SRAMs são muito rápidas.
- Um tempo de acesso típico é da ordem de alguns nanossegundos e por essa razão elas são muito usadas como memória cache de nível 2.
Memórias Voláteis (3/9)
- RAMs dinâmicas (Dynamic RAM – DRAM) são feitas com células que armazenam dados como carga em capacitores.
- A presença ou ausência de carga em um capacitor é interpretada como um binário 1 ou 0.
- Como os capacitores possuem uma tendência natural para descarga, as DRAMs exigem recarga periódica (“refresh” de memória) para manter o dado armazenado.
Memórias Voláteis (4/9)
- Visto que RAMs dinâmicas precisam de apenas um transistor e um capacitor por bit, em comparação com os seis transistores por bit para a melhor RAM estática, elas têm densidade muito alta (muitos bits por chip).
- Por essa razão, as memórias principais quase sempre são construídas com DRAMs.
Memórias Voláteis (5/9)
- Contudo, essa grande capacidade tem um preço: são lentas (dezenas de nanossegundos).
- Dessa maneira, a combinação de uma cache de RAM estática e uma memória principal de RAM dinâmica tenta combinar as boas propriedades de cada uma.
- Existem diversos tipos de RAMs dinâmicas.
Memórias Voláteis (6/9)
- A mais antiga é a DRAM FPM (Fast Page Mode).
- A DRAM FPM foi substituída pela EDO (Extended Data Output), que permite iniciar uma segunda referência à memória antes de ser concluída a referência à memória precedente.
- Esse paralelismo simples não acelerava uma referência individual à memória, mas melhorava a largura de banda da memória, resultando em mais palavras por segundo.
Memórias Voláteis (7/9)
- FPM e EDO funcionavam razoavelmente bem quando os tempos de ciclo de chips de memória eram de 12 nanossegundos ou mais lentos.
- Quando os processadores ficaram tão rápidos que realmente era preciso ter memórias mais rápidas, a FPM e a EDO foram substituídas pela SDRAM (Synchronous DRAM), que é uma híbrida de RAM estática e dinâmica.
Memórias Voláteis (8/9)
- A grande vantagem da SDRAM é que o relógio elimina a necessidade de sinais de controle para informar ao chip de memória quando responder.
- Em vez disso, a CPU informa à memória por quantos ciclos ela deve funcionar e então a inicia.
- Eliminar a necessidade de sinais de controle aumenta a taxa de dados entre a CPU e a memória.
Memórias Voláteis (9/9)
- A melhoria seguinte em relação à SDRAM foi a SDRAM DDR (Double Data Rate).
- Com esse tipo de memória, o chip de memória produz a saída na borda ascendente do relógio e também na borda descendente, dobrando a taxa de dados.
Memórias Não Voláteis (1/8)
- RAMs não são o único tipo de chip de memória.
- Em muitas aplicações, como brinquedos, eletrodomésticos e carros, o programa e alguns dos dados devem permanecer armazenados mesmo quando o fornecimento de energia for interrompido.
- Esses requisitos levaram ao desenvolvimento de ROMs (Read-Only Memories), que não podem ser alteradas nem apagadas, seja ou não intencionalmente.
Memórias Não Voláteis (2/8)
- Os dados de uma ROM são inseridos durante sua fabricação por um processo que expõe um material fotossensível por meio de uma máscara que contém o padrão de bits desejado e então grava o padrão sobre a superfície exposta (ou não exposta).
- A maneira de mudar o programa em uma ROM é substituir o chip inteiro.
Memórias Não Voláteis (3/8)
- ROMs são mais baratas que RAMs quando fabricadas em volume suficientemente grandes para cobrir o custo da fabricação da máscara.
- Todavia, são inflexíveis porque não podem ser alteradas após a manufatura.
Memórias Não Voláteis (4/8)
- Para facilitar o desenvolvimento pelas empresas de novos produtos com ROM, foi inventada a PROM (Programmable ROM).
- Uma PROM é uma ROM, exceto que ela pode ser programada (uma vez) em campo.
- Muitas PROMs contêm um arranjo de minúsculos fusíveis em seu interior.
- Um fusível específico pode ser queimado selecionando sua linha e coluna e então aplicando alta tensão a um pino especial no chip.
Memórias Não Voláteis (5/8)
- O desenvolvimento seguinte nessa linha foi a EPROM (Erasable PROM), que não somente pode ser programada, mas também apagada em campo.
- Para apagar a memória, ela é exposta a uma forte luz ultravioleta durante 15 minutos, fazendo com que seus bits fiquem fixados em 1.
- Se a expectativa é ter muitas alterações durante o ciclo de projeto, as EPROMs são mais econômicas do que as PROMs porque podem ser reutilizadas.
Memórias Não Voláteis (6/8)
- Ainda melhor do que a EPROM é a EEPROM, que pode ser apagada aplicando-se pulsos.
- Além disso, uma EEPROM pode ser reprogramada no local, enquanto uma EPROM tem de ser inserida em um dispositivo especial de programação.
- Uma desvantagem é que a capacidade das maiores EEPROMs normalmente é somente 1/64 da capacidade das EPROMs comuns, e a sua velocidade é a metade.
Memórias Não Voláteis (7/8)
- EEPROMs não podem competir com DRAMs ou SRAMs porque são 10 vezes mais lentas, sua capacidade é 100 vezes menor e são muito mais caras.
- Elas são usadas somente em situações em que sua não-volatilidade for crucial.
Memórias Não Voláteis (8/8)
- Um tipo mais recente de EEPROM é a memória flash.
- Introduzida inicialmente em meados da década de 1980, a memória flash é intermediária entre a EPROM e a EEPROM tanto no custo quanto na funcionalidade.
- É possível apagar apenas blocos de memória, ao invés de um chip inteiro.
- A memória flash usa apenas um transistor por bit e, portanto, consegue ter a alta densidade da EPROM.
Endereços de Memória (1/5)
- Memórias consistem em uma quantidade de células (ou endereços), cada uma das quais podendo armazenar uma informação.
- Cada célula tem um número, denominado seu endereço, pelo qual os programas podem se referir a ela.
- Se a memória tiver n células, elas terão endereços de 0 a n-1.
- Todas as células em uma memória contêm o mesmo número de bits.
Endereços de Memória (2/5)
- Três organizações diferentes para uma memória de 96 bits.
0 1 2 3 4 5 6 7 8 9 10 11 0 1 2 3 4 5 6 7 0 1 2 3 4 5
- Uma célula 16 bits
- 12 bits
- 8 bits
Endereços de Memória (3/5)
- Computadores que usam o sistema de números binários (incluindo notação octal ou hexadecimal para números binários) expressam endereços de memória como números binários.
- Se um endereço tiver m bits, o número máximo de células endereçáveis é 2m.
- O número de bits no endereço determina o número máximo de células diretamente endereçáveis na memória e é independente do número de bits por célula.
Endereços de Memória (4/5)
- A significância da célula é que ela é a menor unidade endereçável.
- Há poucos anos, praticamente todos os fabricantes de computadores padronizaram células de 8 bits, que é determinada um byte.
- Bytes são agrupados em palavras.
- Um computador com uma palavra de 32 bits tem 4 bytes/palavra, enquanto um computador com uma palavra de 64 bits tem 8 bytes/palavra.
Endereços de Memória (5/5)
- A significância de uma palavra é que grande parte das instruções efetua operações com palavras inteiras.
- Por exemplo, fazer adição de duas palavras.
- Assim, uma máquina de 32 bits terá registradores de 32 bits e instruções para manipular palavras de 32 bits, enquanto uma máquina de 64 bits terá registradores de 64 bits e instruções para movimentar, somar, subtrair e, em geral, manipular palavras de 64 bits.
Prof. Me. Newton Carlos Will [email protected] – coens.dv.utfpr.edu.br