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

Entradas relacionadas: